Ada
Full Ada course — 70 topics from the basics to advanced use.
Lessons
- What Is Ada? History, Philosophy & Where It's Used
- Installing GNAT & Alire, and Your First Program
- Program Structure, Lexical Elements & Style
- Strong Typing, Objects, Constants & Named Numbers
- Integer Types: Signed Ranges, Modular Types & Overflow Checks
- Enumeration Types, Boolean & Character
- Floating-Point, Fixed-Point & Decimal Types
- Subtypes, Derived Types & Type Conversion
- Attributes: 'First, 'Last, 'Image, 'Value, 'Range and More
- Build Tools: GNAT, GPR Project Files & Alire
- Testing & Debugging: AUnit, Assertions, Tracebacks & GDB
- Idioms, Style & Common Compiler Errors
- Ada Compared with C, C++, Java, Rust & Python
- Project: Library Management System
- Capstone: Concurrent Sensor Monitoring System
- Interview Review & Mastery Checklist
- Operators, Expressions & Short-Circuit Forms
- If, Case, Conditional and Case Expressions
- Loops: loop, while, for, exit & Named Loops
- Blocks, declare, Quantified, Declare & Reduction Expressions
- Procedures and Functions
- Parameter Modes: in, out, in out & Passing Semantics
- Named Notation, Default Parameters & Overloading
- Recursion, Nested Subprograms & Expression Functions
- User-Defined Operators
- Arrays: Constrained, Unconstrained, Aggregates & Slices
- Multidimensional Arrays, Arrays of Arrays & Array Operations
- Fixed Strings & Character Handling
- Bounded & Unbounded Strings
- Records, Aggregates & Delta Aggregates
- Discriminated & Variant Records
- Packages: Specification & Body
- Private Types & Information Hiding
- Limited Types, Build-in-Place & Extended Return
- Child Packages & Hierarchical Libraries
- use Clauses, Renaming & Elaboration
- Access Types (Pointers) & Allocators
- Anonymous Access, Accessibility & Access-to-Subprogram
- Deallocation, Storage Pools & Linked Structures
- Tagged Types, Extension & Primitive Operations
- Class-Wide Types & Dynamic Dispatching
- Abstract Types & Interfaces
- Controlled Types: Initialize, Adjust, Finalize (RAII)
- OOP Design in Ada: Private Extensions, Constructors & Class-Wide Contracts
- Generic Subprograms & Formal Types
- Generic Packages & Formal Objects
- Formal Packages, Signature Packages & Formal Derived Types
- Exceptions: Declaring, Raising, Handling & Propagation
- Run-Time Checks, Assertions, 'Valid & Suppression
- Contracts: Preconditions & Postconditions
- Subtype Predicates, Type Invariants & Default_Initial_Condition
- Ada.Text_IO in Depth
- File I/O: Text, Sequential, Direct & Stream Files
- Containers: Vectors & Lists
- Containers: Maps, Sets, Holders & Trees
- Numerics: Elementary Functions, Complex, Matrices, Random & Big Numbers
- Time: Ada.Calendar, Formatting, Arithmetic & Real_Time
- Command Line, Environment Variables & Directories
- Tasks: Declaration, Activation & Termination
- Entries & Rendezvous
- Protected Objects & Types
- Select: Guards, Timeouts, Conditional Calls & Asynchronous Transfer
- Real-Time Ada: delay until, Priorities, Requeue, Ravenscar & Jorvik
- Parallelism: Ada 2022 parallel Constructs & Task-Based Chunking
- Representation Clauses: Bits, Sizes & Layout
- Addresses, Overlays, Volatile & Atomic
- Interfacing with C (and Other Languages)
- Unchecked_Conversion, Bit Manipulation & Custom Streams
- SPARK: Formal Verification of Ada Programs
- Safety-Critical & High-Integrity Ada