HAC - HAC Ada Compiler
June 23, 2026 ยท View on GitHub
HAC is perhaps the first open-source (albeit very partial) Ada compiler fully programmed in Ada itself.
Complete description in: doc/hac.txt
Command-line flavor:
If you are impatient: in Alire (https://alire.ada.dev/), do "alr get hac", then "alr run" from the hac* directory.
Alternatively: have GNAT installed (https://www.adacore.com/download), then, on your preferred command-line interpreter:
gnatmake -P hac
cd exm
../hac gallery.adb
(if gnatmake doesn't work, try gprbuild;
for Windows, '\' is meant in place of '/' )
Editor / pre-built flavor:
Or, if you don't want to touch the command-line at all for playing with HAC, you can download and use LEA (http://l-e-a.sf.net/).
Examples
You'll find hundreds of HAC examples in the exm directory and
its subdirectories. This includes six years of Advent of Code solutions.
Many of the examples are also used in the regression test suite (130+ tests).
Here is the famous Hello World! File hello.adb:
with HAT;
procedure Hello is
begin
HAT.Put ("Hello world!");
end Hello;
Another classic example (file fibo.adb):
with HAT;
procedure Fibo is
function Fibonacci (P : Natural) return Positive is
begin
if P <= 2 then
return 1;
else
return Fibonacci (P - 1) + Fibonacci (P - 2);
end if;
end Fibonacci;
use HAT;
begin
for i in 1 .. 22 loop
Put_Line (Fibonacci (i));
end loop;
end Fibo;
Enjoy!
License
HAC is free, open-source and released under the MIT license.