Démarrer avec ada

Version

Le langage de programmation Ada standard est défini dans le [Manuel de référence Ada][1]. Les changements de version provisoires et les notes de mise à jour sont abordés dans les documents de justification correspondants. Les mises en œuvre documentent généralement leur conformité à la norme sous la forme d’un guide de l’utilisateur et/ou d’un manuel de référence, par exemple[2].

-Ada 2012

- [*Ada 2012 Language Reference Manual*][3]
- [*Rationale for Ada 2012*][4]

-Ada 2005

- [*Ada 2005 Language Reference Manual*][5]
- [*Rationale for Ada 2005*][6]

-Ada 95

- [*Ada 95 Language Reference Manua*l][7]
- [*Rationale for Ada 95*][8]

-Ada 83

- [*Ada 83 Language Reference Manua*l][9] 
- [*Ada 83 Rationale for the Design of the

Langage de programmation Ada®*][10]

[1] : http://www.ada-auth.org/arm.html [2] : https://www.wikiod.com/fr/ada/demarrer-avec-ada#Installation ou configuration [3] : http://www.ada-auth.org/standards/12rm/html/RM-TOC.html [4] : http://www.ada-auth.org/standards/12rat/html/Rat12-TOC.html [5] : http://www.adaic.org/resources/add_content/standards/05rm/html/RM-TOC.html [6] : http://www.adaic.org/resources/add_content/standards/05rat/html/Rat-TOC.html [7] : http://www.adaic.org/resources/add_content/standards/95lrm/ARM_HTML/RM-TOC.html [8] : http://www.adaic.org/resources/add_content/standards/95rat/rat95html/rat95-contents.html [9] : http://archive.adaic.com/standards/83lrm/html/ [10] : http://archive.adaic.com/standards/83rat/html/

Installation ou configuration

Ada est un langage de programmation pour lequel il existe plusieurs compilateurs.

  • L’un de ces compilateurs, et peut-être le plus utilisé, est GNAT. Il fait partie de la chaîne d’outils GCC. Il peut être installé à partir de plusieurs sources :
  • La version annuelle de la GPL réalisée par AdaCore, disponible gratuitement sur [site libre][3]. Cette version a subi tous les tests internes effectués par AdaCore pour ses versions professionnelles, est disponible sur un grand nombre de plates-formes. Le compilateur et son environnement d’exécution sont publiés sous la licence GPL et, à moins que vous n’utilisiez aucun environnement d’exécution, tous les exécutables que vous distribuez seront également couverts par cette licence. Pour les universitaires et les projets à leurs débuts, ce n’est pas un problème.

  • La FSF [gcc][1] reçoit régulièrement les mêmes correctifs. La version de GNAT n’est peut-être pas toujours à jour, mais se rattrape régulièrement.

  • Un certain nombre de contributeurs empaquetent cette version FSF pour diverses distributions Linux (systèmes basés sur Debian, entre autres) et [binaires] [2] pour Mac OS X. L’utilisation du gestionnaire de paquets de votre distribution pourrait être le moyen le plus simple d’installer GNAT . Ces versions sont livrées avec la licence GCC standard et vous permettent d’écrire du code source fermé.

  • AdaCore fournit également [GNAT Pro][4], qui est fourni avec la licence GCC standard qui vous permet d’écrire du code source fermé. Plus important peut-être, il est accompagné d’un support, si vous avez des questions sur l’utilisation du langage, les outils, la meilleure façon d’implémenter quelque chose, et bien sûr les rapports de bogues et les demandes d’amélioration.

Un autre [nombre de compilateurs] [5] sont répertoriés dans le [Ada WikiBook][.wikibook], ainsi que les instructions d’installation. [Getadanow.com][.getadanow] propose des éditions de FSF GNAT, prêtes à l’emploi pour divers systèmes d’exploitation sur plusieurs types de matériel ou de machines virtuelles. Le site recueille également des ressources pour apprendre et partager Ada.

[1] : https://gcc.gnu.org [2] : https://sourceforge.net/projects/gnuada/ [3] : https://libre.adacore.com [4] : https://www.adacore.com

[5] : https://en.wikibooks.org/wiki/Ada_Programming/Installing [.wikibook] : https://en.wikibooks.org/wiki/Ada_Programming [.getadanow] : http://getadanow.com

Bonjour le monde

with Ada.Text_IO;

procedure Hello_World is
begin
   Ada.Text_IO.Put_Line ("Hello World");
end Hello_World;

Alternativement, après avoir importé le package [Ada.Text_IO][1], vous pouvez dire use Ada.Text_IO; afin de pouvoir utiliser [Put_Line][2] sans déclarer explicitement de quel package il doit provenir, en tant que tel :

with Ada.Text_IO; use Ada.Text_IO;

procedure Hello_World is
begin
    Put_Line ("Hello World");
end Hello_World;

Si vous utilisez le compilateur gnat, ce programme simple peut être compilé avec

gnatmake hello_world

Cela va générer un certain nombre de fichiers, dont un hello_world (ou hello_world.exe sous Windows) que vous pourrez exécuter pour voir le fameux message. Le nom de l’exécutable est calculé automatiquement à partir du nom du sous-programme Ada principal. En Ada, un sous-programme principal peut avoir n’importe quel nom. Il doit seulement s’agir d’une procédure sans paramètre, que vous donnez comme argument à gnatmake.

D’autres compilateurs ont des exigences similaires, bien que la commande de construction soit bien sûr différente.

[1] : https://www.wikiod.com/fr/ada/package-adatext_io [2] : https://www.wikiod.com/fr/ada/package-adatext_io#Put_Line

Bibliothèques

Comme pour tout langage de programmation, Ada est livré avec de vastes bibliothèques pour accomplir diverses tâches. Voici quelques pointeurs vers certains d’entre eux, bien que la recherche sur github en mènera un peu plus.

  • Le runtime Ada lui-même, distribué à tous les compilateurs, comprend un ensemble complet de packages et d’annexes, allant des structures de données et des conteneurs à l’entrée/sortie, la manipulation de chaînes, la manipulation temporelle, les fichiers, les calculs numériques, le multitâche, les commutateurs de ligne de commande , nombres aléatoires,…

  • Le compilateur GNAT est livré avec son propre environnement d’exécution étendu, avec de nouveaux packages dans la hiérarchie GNAT, qui prennent en charge les expressions régulières, le tri, la recherche, l’unicode, le CRC, l’entrée/sortie temporelle, …

  • [gnatcoll][1] est une bibliothèque disponible sur le [site libre][2] d’AdaCore, et comprend un framework de journalisation étendu, étendant les applications avec python, mmap, un framework étendu pour s’interfacer avec les systèmes de fichiers, analyser les messages électroniques et boîtes aux lettres, un cadre étendu pour interagir avec les bases de données de manière sécurisée, interface avec diverses bibliothèques telles que icon, readline, couleurs de terminal, prise en charge des types comptés par référence pour la gestion automatique de la mémoire, fichiers JSON, …

  • [XML/Ada][3] est une bibliothèque pour analyser et valider des documents XML

  • [GtkAda][5] est une liaison complète à la bibliothèque gtk+, qui vous permet d’écrire des interfaces utilisateur portables sur Unix, Windows et OSX.

  • [AWS][2] est un cadre pour créer des serveurs Web en Ada, avec un support complet pour divers protocoles comme HTTP, Websockets,… et son propre système de modèles.

[1] : http://docs.adacore.com/gnatcoll-docs/ [2] : https://libre.adacore.com/ [3] : http://docs.adacore.com/xmlada-docs/ [5] : http://docs.adacore.com/gtkada-docs/gtkada_rm/gtkada_rm/