A hands-on project roadmap for learning the Ada programming language.
This repository documents my journey in learning Ada through structured exercises, mini-projects, and practical implementations.
Ada is a high-level, structured, and statically typed programming language designed for reliability, safety, and maintainability. It is widely used in:
- Aerospace and aviation systems
- Defense and military applications
- Embedded and real-time systems
- Safety-critical software
Ada emphasizes correctness, readability, and long-term software sustainability.
Ada offers powerful features and strong guarantees:
- Strong static typing
- Built-in concurrency support (tasking)
- Exception handling
- Modular programming with packages
- High reliability for safety-critical systems
- Support for formal verification (via SPARK)
To run and build the projects in this repository, you will need:
- GNAT Studio – Ada IDE
- SPARK – For formal verification (optional but recommended)
- Ada compiler (GNAT Community Edition or equivalent)
Also:
- Browse the
docs/folder - Check
RESOURCES.mdfor additional learning materials
Each project folder contains:
- Source code (
.adb,.ads) - Notes (if applicable)
- References to learning materials
See __docs__/Ada_Packages_List.md for a list of available packages and libraries.
| Project Name | Description | Completion | Resources |
|---|---|---|---|
| HelloWorld | Simple “Hello, Ada” program | 100% | Page 4: Ada – A Crash Course by Peter Chapin (Vermont Technical College, July 27, 2015) |
| DirectHelloWorld | Demonstrates the use clause to make identifiers directly visible |
100% | Page 4: Ada – A Crash Course by Peter Chapin |
| PrimeCheckingProgram | Accepts an integer from the user and determines whether it is a prime number | 100% | Page 6: Ada – A Crash Course by Peter Chapin |
| VowelCountingProgram | Counts an vowels from the user. | 100% | Page 8: Ada – A Crash Course by Peter Chapin |
| PrimeCheckingProgram2 | Accepts an integer from the user and determines whether it is a prime number (Version 2). | 50% | Page 17: Ada – A Crash Course by Peter Chapin |
This section will include original projects built independently as I deepen my understanding of Ada.
| Project Name | Description | Status |
|---|---|---|
| Ping | Simple ping utility | 10% |
- Master Ada syntax and structure
- Understand packages and modular design
- Learn tasking and concurrency
- Explore SPARK for formal verification
- Build small real-world console applications
This project is open-source and available under the MIT License.