logo Adalog
Le langage Ada
Salle de contrôle

Ada

Pour ceux qui n'ont pas le droit de se tromper

Photo: freewebheaders

Le langage Ada

Ada est un langage de programmation qui représente l'aboutissement de la lignée des langages "classiques", impératifs et procéduraux. Il constitue essentiellement un effort de synthèse des meilleurs éléments figurant dans les langages qui l'ont précédé, intégrés dans un ensemble cohérent.

Ada a été conçu d'après un cahier des charges, dont l'idée directrice est de diminuer le coût des logiciels, en tenant compte de tous les aspects du cycle de vie. Il a été utilisé avec succès dans des domaines aussi variés que le temps-réel, la gestion, la CAO, le traitement linguistique...

Ada est une norme internationale. Tous les compilateurs actuellement sur le marché ont été validés selon une procédure extrêmement rigoureuse qui assure leur conformité à la norme. Aucun sur-ensemble ni sous-ensemble n'est admis, afin de garantir la portabilité des applications.

Des études économiques ont montré que les projets en Ada coûtaient moins cher en développement, que leur phase d'intégration était plus courte, et qu'il restait moins d'erreurs résiduelles que dans des projets équivalents développés dans d'autres langages. Passer à Ada est avant tout une décision justifiée sur le plan économique comme sur celui de la sécurité.

Un peu d'histoire...

Différentes normes du langage se sont succédées; en effet, comme toute norme, le langage Ada est révisé périodiquement afin de suivre l'évolution de la technique. Chaque nouvelle version a pris grand soin de rester totalement compatible avec la précédente, tout en fournissant les nouvelles fonctionnalités dont la nécessité était apparue avec l'évolution de l'informatique.

Ada 83

La première version du langage a été normalisée en 1983. Cette version établissait les principes fondateurs du langage, et bien peu de langages actuels offrent l'étendue des fonctionnalités qui figuraient déjà en Ada 83: un typage réellement fort,  des types numériques en point fixe, un contrôle strict de la modularisation, la gestion des exceptions, le parallélisme intégré au langage, les génériques, pour n'en citer que quelques-uns.

Ada 95

Un processus de révision, commencé en 1988, a abouti à la publication officielle de la norme Ada95 le 15 février 1995. Cette version du langage a été définie après enquête auprès des utilisateurs, sous le contrôle vigilant des organismes internationaux. Ada 95 a été le premier langage orienté objet standardisé au niveau international, avec plus de trois ans d'avance sur le second (C++).

L'apparition d'Ada 95 a représenté un évènement majeur, en fournissant pour la première fois dans un cadre linguistique unique strictement normalisé:

  • Un véritable langage orienté objet;
  • Des nouvelles possibilités temps-réel très performantes;
  • Des structures permettant d'organiser les très grosses applications.
  • Un modèle d'exécution distribuée;
  • Une compatibilité avec tous les standard du marché.

Ada 2005

Une  mise à jour du langage a été approuvée par l'ISO en mars 2007. On l'appelle officiellement Ada 2005, car si le processus de normalisation n'a été achevé qu'en 2007, le travail technique et même les premiers compilateurs étaient disponibles dès la fin 2005.

Il s'agit d'un amendement, processus plus léger qu'une révision comme ce fut le cas pour Ada95; les principales améliorations apportées concernent:

  • L'ajout de la notion d'interfaces, directement inspirées de la notion similaire en Java
  • Une plus grande souplesse dans les manipulations de pointeurs
  • Des améliorations et généralisations des mécanismes existant
  • L'incorporation dans la norme du profil Ravenscar 
  • Des fonctionnalités temps-réel avancées, notamment pour le contrôle de l'ordonnancement
  • De nombreuses nouvelles bibliothèques prédéfinies (notamment conteneurs et accès à l'environnement)

Ada 2012

Une nouvelle révision du langage a été publiée par l'ISO le 15 décembre 2012; vous en trouverez les détails ici. Elle poursuit l'effort commencé avec Ada 2005, en ajoutant:

  • La programmation par contrat (pré- et post-condition, invariants de types)
  • Des itérateurs définissables par l'utilisateur (y compris sur les conteneurs standard)
  • Des expressions conditionnelles, prédicats
  • Le support des architectures multi-cœurs
  • Et toujours plus de paquetages dans la bibliothèque prédéfinie.

Ada aujourd'hui

Ada est le plus avancé des langages orientés objet

Ada 2012 est un véritable langage industriel qui conserve les avantages des versions précédentes tout en offrant un support aux besoins d'aujourd'hui : héritage, interfaces, parallélisme, exécution distribuée, compatibilité avec les bibliothèques et les standards du marché.

Vous utilisez Ada tous les jours...

Que ce soit pour vos loisirs (Canal+, système HERTZ-Neverlost), vos déplacements (TGV, avion, métro), votre sécurité (contrôle aérien, sécurité ferroviaire), vous utilisez tous les jours des logiciels écrits en Ada. Sans compter les nombreux projets industriels et militaires qui en font grand usage.

Ada est disponible

De nombreux compilateurs ont été validés sur les principales cibles du marché, et il existe même des compilateurs gratuits, dont certains ont déjà été mis à jour à la nouvelle norme : tout le monde peut essayer sans risque.

Ada est aujourd'hui une réalité de première importance, et tout nouveau projet se doit d'évaluer la possibilité d'utiliser Ada afin d'augmenter ses chances d'aboutir dans les meilleures conditions possibles.

Pour en savoir plus...

Vous pouvez télécharger des publications de J-P. Rosen présentant le langage en détails, ou consulter notre bibliographie commentée.

Vous trouverez également une présentation générale du langage sur Wikipedia (en français), ainsi qu'une version anglaise plus volumineuse. Le Wikibook Ada est également une référence incontournable. Pour replacer le langage dans son contexte méthodologique, voir le livre de J-P. Rosen (en français). Enfin, notre page de ressources Ada vous donnera une idée (non exhaustive) de ce qui est disponible!