Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
La première norme du langage Ada a été publiée en 1983 ; elle a ensuite été révisée et améliorée en 1995, 2005 et 2012, chaque révision apportant de nouvelles fonctionnalités utiles.
Aujourd'hui, Ada est largement utilisé dans les systèmes embarqués en temps réel, dont beaucoup sont critiques pour la sécurité. Bien qu'Ada soit et puisse être utilisé comme un langage à usage général, il brillera vraiment dans les applications de bas niveau :
- Systèmes embarqués avec de faibles besoins en mémoire (aucun ramasse-miettes autorisé).
- Interfaçage direct avec le matériel.
- Systèmes temps réel souples ou durs.
- Programmation de systèmes de bas niveau.
Les domaines spécifiques où Ada est utilisé comprennent l'aérospatiale et la défense, l'aviation civile, le rail et bien d'autres. Ces applications nécessitent un haut degré de sécurité : un défaut logiciel n'est pas seulement une nuisance, mais peut avoir de graves conséquences. Ada fournit des fonctionnalités de sécurité qui détectent les défauts à un stade précoce, généralement au moment de la compilation ou à l'aide d'outils d'analyse statique. Ada peut également être utilisé pour créer des applications dans divers autres domaines, tels que :
Programmation de jeux vidéo
Audio en temps réel
Modules du noyau
Il s'agit d'une liste non exhaustive qui, espérons-le, éclaire sur le type de programmation dans lequel Ada est bon.
En termes de langages modernes, les plus proches en termes de cibles et de niveau d'abstraction sont probablement C++ et Rust.
Dans ce wiki on n'apprend à coder en ADA, mais à installer une infrastructure pour pouvoir le faire.
Un très bon tutoriel quand même pour prendre en main ce merveilleux langage : LEARN.ADACORE.com
apt update && apt install gcc gnat
1. On édite un fichier .adb par exemple avec le code ci-dessous
-- On commence avec du pascada ^^ with Ada.Text_IO; use Ada.Text_IO; procedure Hello is begin Put_Line ("Hello WORLD!"); end Hello;
2. On compile. Il y a plusieurs étapes manuelles :
- On compile le fichier .adb:
~/Programmation/ADA$ ls -l total 12 -rw-r--r-- 1 n n 104 23 nov. 11:03 hello.adb
n@debian-fixe:~/Programmation/ADA$ gcc -c hello.adb n@debian-fixe:~/Programmation/ADA$ ls -l total 12 -rw-r--r-- 1 n n 104 23 nov. 11:03 hello.adb -rw-r--r-- 1 n n 2163 23 nov. 11:03 hello.ali -rw-r--r-- 1 n n 1456 23 nov. 11:03 hello.o
- on vérifie la cohérence :
n@debian-fixe:~/Programmation/ADA$ gnatbind hello n@debian-fixe:~/Programmation/ADA$ ls -l total 44 -rw-r--r-- 1 n n 9346 23 nov. 11:09 b~hello.adb -rw-r--r-- 1 n n 18159 23 nov. 11:09 b~hello.ads -rw-r--r-- 1 n n 104 23 nov. 11:03 hello.adb -rw-r--r-- 1 n n 2163 23 nov. 11:03 hello.ali -rw-r--r-- 1 n n 1456 23 nov. 11:03 hello.o
- édition de lien :
n@debian-fixe:~/Programmation/ADA$ gnatlink hello n@debian-fixe:~/Programmation/ADA$ ls -l total 44 -rwxr-xr-x 1 n n 30912 23 nov. 11:14 hello -rw-r--r-- 1 n n 104 23 nov. 11:03 hello.adb -rw-r--r-- 1 n n 2163 23 nov. 11:03 hello.ali -rw-r--r-- 1 n n 1456 23 nov. 11:03 hello.o
gnatmake
ci-dessous.
Pour la tester, supprimer tous les fichiers issues de la précédente compilation hello hello.ali hello.o
gnatmake hello.adb
3. On exécute :
n@debian-fixe:~/Programmation/ADA$ ./hello Hello WORLD!
1. compilation du source : gcc -c hello.adb
2. test de cohérence des différentes unités : gnatbind
3. édition des liens : gnatlink
1. Installation de make
sudo apt install make
2. Edition d'un fichier Makefile Nommé ainsi pour que la commande make trouve ce fichier sans lui indiquer le nom de fichier
CC=gcc -c $(FLAGS) # quand on met l'option -c à la commente gcc on demande de compiler en debug FLAGS=-g all: hello #hello.o: hello.adb # $(CC) hello.adb #b~hello.ads: hello.o # gnatbind hello #hello: b~hello.ads # gnatlink hello hello: hello.adb $(CC) hello.adb gnatbind hello gnatlink hello
3. Exécution de la commande make qui lit le fichier Makefile
n@debian-fixe:~/Programmation/ADA$ make
ls -l -rwxr-xr-x 1 n n 30912 23 nov. 12:44 hello -rw-r--r-- 1 n n 137 23 nov. 11:42 hello.adb -rw-r--r-- 1 n n 2163 23 nov. 12:44 hello.ali -rw-r--r-- 1 n n 1456 23 nov. 12:44 hello.o -rw-r--r-- 1 n n 501 23 nov. 12:35 Makefile
Si on a pas modifié le fichier hello.adb et qu'on relance la commande ```make```, il ne recompile pas pour rien.
n@debian-fixe:~/Programmation/ADA$ make make: rien à faire pour « all ».
ls -l
make
4. On exécute le programme ADA
./hello