Ada (langage)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Ada.
Ada Lovelace (1840).

Ada est un langage de programmation orienté objet dont les premières versions remontent au début des années 1980.

Présentation[modifier | modifier le code]

Ada[1] est un langage de programmation conçu par l’équipe de CII-Honeywell Bull dirigée par Jean Ichbiah en réponse à un cahier des charges établi par le département de la Défense des États-Unis (DoD). Son développement a commencé au début des années 1980 pour donner Ada 83. Pour cela, l'équipe de Jean Ichbiah s'est inspirée de son précédent langage LIS (Langage d'Implémentation de Systèmes), conçu à la CII pour permettre le développement de systèmes d'exploitation portables (à 95 %, disait Ichbiah).

Ada 83 a été ensuite repris et amélioré au milieu des années 1990 pour donner Ada 95, le second langage objet normalisé de manière internationale (publié en février 1995, il est précédé de peu par Common Lisp, publié en décembre 1994). Sous les auspices de l’Organisation internationale de normalisation (ISO), le langage a bénéficié d'un amendement (Ada 2005) puis d'une nouvelle révision appelée Ada 2012.

Le nom Ada a été choisi en l’honneur d’Ada Lovelace, sans doute la première informaticienne de l’histoire. Il est associé à la couleur verte car, lors de l’appel d’offre du DoD, les différentes propositions étaient désignées par des couleurs pour éviter tout biais, et l’équipe qui l’a conçu était l’équipe verte.

Voici quelques particularités d’Ada :

  • typage statique ;
  • module par les paquetages et contrôle fin de la visibilité ;
  • syntaxe claire et non ambiguë (inspirée de celle du langage Pascal) ;
  • généricité ;
  • multi-tâche ;
  • traits temps réel intégrés au langage (tâches, objets protégés, interruptions) ;
  • bibliothèques normalisées ;
  • liens avec les autres langages ;
  • annexes temps réel avec le Profil Ravenscar pour les systèmes sûrs ;
  • le document de la norme ISO est librement téléchargeable (voir ci-dessous).

Il est souvent utilisé dans des systèmes temps réel et embarqués nécessitant un haut niveau de fiabilité et de sécurité. De nos jours, Ada95 est employé bien sûr par son initiateur, mais aussi dans toutes les technologies de pointe ; en France, l’automobile, les transports ferroviaires (ALSTOM, Siemens Transportation Systems, ANSALDO STS) (TGV, Corail, RER, METEOR), les technologies aéronautiques (Thales Air Systems, Thales Avionics, Airbus, EADS Défense et sécurité) et les technologies spatiales (Thales Alenia Space, EADS Astrium, CNES, Arianespace).

En 2013, il est possible de trouver des compilateurs Ada pour certains systèmes d’exploitation (Windows, Linux, VxWorks) et architectures matérielles, y compris un compilateur libre (GNAT, inclus dans GNU Compiler Collection) compilant de l’Ada 83/95/2005/2012.

Ada est parfois utilisé en introduction aux cours de programmation informatique avancée[2], et il peut être utilisé pour les cours d'introduction à la programmation[3].

Autres langages dans la mouvance Ada[modifier | modifier le code]

Ada est inspiré du Pascal dont il a repris tant l'esprit de la syntaxe que de l'architecture. Le langage Ada a inspiré Bertrand Meyer pour la conception du langage Eiffel, qui y ajoute des notions de programmation par contrat (mais se montre moins adapté à l'industrie sous certains aspects). La notion de programmation par contrat, formalisée par Bertrand Meyer avec Eiffel, a amené la création d'une extension au langage Ada, SPARK (en), pour lui faire supporter des notations permettant d'exprimer des assertions contractuelles dans les spécifications.

Dans le domaine des bases de données, Ada a inspiré le langage PL/SQL.

Le langage Ada est également à la base de la conception des différents langages de la norme IEC 61131-3, en particulier la partie déclarative commune à tous les langages et le langage ST (Texte structuré).

"Hello, world!" en Ada 95 ou Ada 2005[modifier | modifier le code]

Un exemple courant pour montrer la syntaxe d’un langage est le programme Hello world :

with Ada.Text_IO; -- Bibliothèque
 
-- Déclaration de la procédure "Hello"
procedure Hello is
begin
  -- Imprimer "Hello, world!" à l'écran
  Ada.Text_IO.Put_Line("Hello, world!");
end Hello;

Il existe des raccourcis pour Ada.Text_IO.Put_Line nécessitant moins de caractères, mais ils ne sont pas utilisés ici pour des raisons de compréhension. Pour des explications plus détaillées, vous pouvez consulter Wikibooks:Ada Programming/Basic.

Bref historique[modifier | modifier le code]

  • 1974 : Le département de la Défense américain s'aperçoit qu’il gaspille énormément d’argent en utilisant grosso modo un langage de programmation par application, et en entretenant des programmes écrits dans des langages obsolètes endémiques ou exotiques. Certaines sources avancent le chiffre de 500 langages de programmation employés en ces lieux.
    Le résultat de cette prise de conscience est l’élaboration, en 3 ans, du cahier des charges d’un langage unique, suffisamment souple et puissant pour remplacer tous les autres, que ce soit pour le guidage de missiles ou les travaux sur l’intelligence artificielle en passant par les applications de gestion.
  • 1977 : Le département lance un appel d’offres, remporté par une équipe dirigée par le Français Jean Ichbiah.
  • 1990 : À partir des améliorations apportées par les différents développeurs de compilateurs, l’Ada Joint Program Office lance un projet de révision du langage.
  • 1991 : Alsys est revendu à Thomson-CSF et devient TSP.
  • 1994 : La société Ada Core Technologies (aujourd’hui AdaCore) est fondée par les membres du projet GNAT pour poursuivre la maintenance du compilateur et en assurer la commercialisation et le support.
  • 1995 : La révision tant attendue arrive à son terme, Ada95 voit le jour. Une norme révisée est publiée, ISO/CEI 8652:1995. Ada95 est le premier langage qui met en œuvre la programmation orientée objet à faire l’objet d’une norme internationale. Le compilateur GNAT couvre l’intégralité de la norme Ada95, y compris l’ensemble de ses annexes optionnelles.
  • 2007 : L'ISO publie l'Amendement 1 au langage qui introduit de nouvelles fonctions et officialise de nombreuses améliorations proposées initialement par les différents développeurs de compilateurs. Cette version du langage porte le nom d'Ada 2005, année durant laquelle l'Amendement fut figé pour publication par l'ISO.
  • 2012 : L'ISO publie une nouvelle révision de la norme (Ada 2012), qui apporte notamment des facilités syntaxiques, la programmation par contrat, le support des architectures multi-cœurs, et une extension de la bibliothèque prédéfinie.

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Sur les autres projets Wikimedia :

  • GNAT (compilateur Ada libre)
  • MaRTE OS (système d'exploitation temps réel écrit en Ada)

Liens externes[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. What About Ada? The State of the Technology in 2003
  2. Daniel Feneuille : Enseigner Ada (pourquoi ?, à qui ?, comment !)
  3. C'est le cas au sein de l'école d'ingénieur française INSA de Toulouse. Voir le programme détaillé.
  4. Greffe du tribunal de Commerce de Nanterre, 380 249 003 RCS Nanterre