The GNAT Academic Program (GAP) is AdaCore's bridge to universities: capstone projects, course support, reference hardware, and the open-source Ada/SPARK libraries that come out of them. Everything public lives in this organization.
- Program coordinator: Olivier Henley
- Students and professors working with us: book meetings directly through the calendar booking link instead of emailing for a time slot
- Community chat: GAP Discord
- Capstones. Each year we publish a slate of senior-design projects (embedded, systems, tooling, FPGA). Teams pick one, fork the seed repository, and build for the year. Proposals for 2026-2027: capstones_proposals_2026-2027.
- Course support. Educators teaching Ada/SPARK get tooling help, course material, and access to program hardware.
- Reference hardware. Freya, an open-source Artix-7 + RP2350 FPGA dev board designed for the program, plus supported MCU boards (STM32F746G-DISCO, Nucleo-G431KB) and the NEORV32 RISC-V softcore.
- Libraries. GHAL, a generics-based bare-metal Ada stack (stm32f746_ghal, stm32g431_ghal, ghal_examples), neorv32-hal, and assorted drivers and protocol crates, all published as Alire crates.
- Pick a proposal from the current year's list.
- Fork its seed repository from this organization. The seed holds the core architecture, fundamental types, and a README. Your fork is your project for the year; there are no upstream pull requests during the year.
- Book a kickoff meeting through the booking link.
- At year end, the strongest work is folded back into the seed with credit.
Ada idiom matters. Reviews check for C-style Ada (raw access types everywhere, integer soup, no contracts). SPARK is scoped: contracts on everything, SPARK_Mode on specs, full proof on each project's small kernel.
- Learn Ada and SPARK, the official course
- Ada Forum
- Awesome-Ada, curated ecosystem list
Linux (Ubuntu LTS) is the tested path. Windows and macOS work.
Alire is the Ada package manager and toolchain installer.
Linux / macOS
curl --proto '=https' --tlsv1.2 -sSf https://www.getada.dev/init.sh | sh
Windows
Download and run the installer from the Alire releases page. Note the install folder it shows you (default is under C:\Program Files\alr).
The installer does not put alr on your PATH. Do it once, in PowerShell, using the folder from the previous step:
setx PATH "$env:PATH;C:\Program Files\alr\bin"
Close and reopen the terminal.
Verify:
alr --version
alr toolchain --select
Pick gnat_native and gprbuild. For ARM targets, run it again and pick gnat_arm_elf.
Crates in the community index: alr with <crate> as usual.
Crates not yet published: depend on them straight from GitHub in your alire.toml.
[[depends-on]]
stm32f746_ghal = "*"
[[pins]]
stm32f746_ghal = { url = "https://github.com/GNAT-Academic-Program/stm32f746_ghal" }Or from the command line:
alr with stm32f746_ghal --use=https://github.com/GNAT-Academic-Program/stm32f746_ghal
Install VS Code and the Ada extension:
code --install-extension AdaCore.ada
OpenOCD for flashing and debugging:
sudo apt install openocd
(macOS: brew install openocd. Windows: xPack OpenOCD.)
alr get --build hello
cd hello*
alr run