Learning Ada Language

06/18/2019 By admin

It’s Never Too Late to Start

This month I decided start my study in Ada Language. I work with embedded computers a long time (almost 30 years) and since the beginning using basically C.

About 5 years ago I started use C++ and in 2017 I did my first project using Python, running in a Raspberry Pi board.

But I always heard about the advantages of Ada Language. And finally I decided go deeply.

The first steps are being very hard. I need to change my mind set, forged for years working with C, where you have a great flexibility to deal with variables, pointers, structures, and arrays.

But what is very interesting, reading some tutorials, I remember some very big problems that I faced during my experience with C. A lot of nights without sleep, concerns, headaches, and some times was that little pointer I didn’t take care with it. A buffer overflow that was very difficult to detect, a missing cast that destroy the variable beside you are accessing. Who works with C and C++ knows exactly what I’m talking about.

How to start

GNAT is the ada compiler, and I suggest install GPS (GNAT Programming Studio) an IDE with a lot of great features.

You can download a Community Version in the Ada Core site.


As soon as you install GPS, you can find a tutorial that explain the features of GPS. It’s a very good tutorial, but if you don’t know Ada, I suggest get familiar with it first.

You can find some tutorials in the internet, but I suggest follow this tutorial on Learn Adacore.com.

If you are a C++ or Java programmer, I also suggest read this: Ada For CPP and Java Developer.

Hello World!

As usual, let’s start with a Hello World program. For now, it’s not necessary use GPS, you can run it from command line.

First, update the PATH environment variable with directory where GPS was installed followed by \bin.

In my case (Windows 10), D:\GNAT\2019\bin

Verify if gcc is pointed to this directory:

$> where gcc

Create a file named HelloWorld.adb:

with Ada.Text_IO;
use  Ada.Text_IO;procedure HelloWorld is
     Put_Line ("Hello World!");
end Main;

To compile use gprbuild

$> gprbuild HelloWorld.adb
using project file D:\GNAT\2019\share\gpr\_default.gpr
   [Ada]          helloworld.adb
   [gprbind]      helloworld.bexch
   [Ada]          helloworld.ali
   [link]         helloworld.adb

Now, it’s just run your new Ada HelloWorld project!

$> helloworld
Hello World!


I know it will be a very excited journey, and I will share with you every step here.

Every new post I will create a link here