Présentation

Article

1 - COMPOSANTES D’UN PROGRAMME ADA

2 - TYPES DE DONNÉES

  • 2.1 - Types énumérés
  • 2.2 - Types numériques
  • 2.3 - Types caractères et chaîne
  • 2.4 - Types pointeurs
  • 2.5 - Types composés
  • 2.6 - Sous-types et types dérivés
  • 2.7 - Classes (types étiquetés)

3 - INSTRUCTIONS DU LANGAGE

  • 3.1 - Expressions
  • 3.2 - Conditionnelle
  • 3.3 - Boucles
  • 3.4 - Case

4 - STRUCTURATION D’UN PROGRAMME

  • 4.1 - Fonctions
  • 4.2 - Procédures
  • 4.3 - Surcharge de fonctions et procédures
  • 4.4 - Paquetages (packages)

5 - GÉNÉRICITÉ

6 - EXCEPTIONS

7 - PARALLÉLISME

  • 7.1 - Tâches
  • 7.2 - Types protégés

8 - AUTRES ASPECTS DU LANGAGE

9 - CONCLUSION

Article de référence | Réf : H2280 v2

Autres aspects du langage
Ada

Auteur(s) : Fabrice KORDON

Date de publication : 10 août 2017

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais English

NOTE DE L'ÉDITEUR

06/08/2017

Cet article est la version actualisée de l’article « Ada » rédigé par Daniel-Jean DAVID et paru dans nos éditions en 1983.

RÉSUMÉ

L'objectif de cet article est de présenter sommairement le langage Ada dans son état actuel (2017). Après un bref rappel des conditions particulières de sa création et de son historique, les fonctions principales offertes aux programmeurs sont présentées, à savoir : un système de typage souple et configurable (en particulier pour la représentation des nombres), un système intégré de compilation séparé, un modèle de concurrence (plutôt orienté thread mais aussi en réparti avec l'annexe E), un modèle de généricité (qui a inspiré celui de Java) et un modèle objet.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

INTRODUCTION

Issu d'un projet lancé par le Département de la Défense des États-Unis, le langage Ada a été construit comme un langage idéal et adapté à des projets de grande envergure. Toutefois la grande complexité d'Ada a nui à son développement et à son utilisation dans des projets moins importants.

Les ambitions du langage Ada sont grandes, puisque l'idée était de le substituer à tous les langages utilisés à l’époque par le Département de la Défense des États-Unis. Le langage devait également être portable (la compatibilité ascendante a bien été maintenue dans les révisions successives) et visait à une universalité des applications, offrant un vaste panel de mécanismes permettant de réaliser des systèmes embarqués comme des programmes de calcul scientifique. Cette caractéristique est toujours vérifiée aujourd’hui au travers de nombreuses annexes dédiées aux différents domaines d’application visés.

Un accent particulier a été mis sur le support du parallélisme (notions de tâches en 1983, puis d’objets protégés en 1995) et sur la modularité (notion de package dès 1983). La première version introduit également un mécanisme de généricité très abouti qui servira, vingt ans plus tard, de modèle à celle proposée dans Java (mais avec des mécanismes d’implémentation différents). La première mouture du langage n’était pas objet (on dit cependant qu’elle était “basée objet”, certains concepts étant déjà présents au travers de la notion de package). La révision de 1995 introduisit cette notion, malheureusement avec une terminologie non standard (une classe est définie comme un “type étiqueté”), ce qui n’en fit pas vraiment la publicité.

Ada est fortement typé, s’inspirant en cela de langages comme Pascal. Les contraintes de type doivent être résolues lors de la compilation. C’est une caractéristique importante d’Ada dont la philosophie peut être résumée par, “si cela compile, une grande partie des problèmes de traitements sont résolus”. Le contrôle statique du typage lors de la compilation est complété par du code inséré par le compilateur en vue de tester toutes les expressions pendant l’exécution. Ainsi, si des problèmes impossible à contrôler lors de la compilation subsistent (e.g. dépassement de capacité sur des entiers ou d’indices dans des tableaux), ils sont rattrapés à l’exécution exactement aux moments où ils surviennent et non, par observation des effets du problème. Un mécanisme assez fin d’exception permet de signaler de tels problèmes (usage d’exceptions prédéfinies dédiées).

Enfin, la conformité des compilateurs a de tout temps été contrôlée au moyen de jeux de tests complets déterminant le comportement (normal et en cas d’erreurs) des compilateurs : les ACVC (Ada Compiler Validation Capability), puis, depuis 1999, les ACATS (Ada Conformity Assessment Test Suite). Tout compilateur Ada ne peut se revendiquer comme tel qu’après avoir réussi avec succès ce test de conformité. Une telle procédure a été introduite avec Ada puisqu’il fut le premier langage standardisé par l’ISO.

On ne peut juger un langage sans en avoir une connaissance minimale. Nous nous bornerons dans cet article, à un minimum qui, s’il donne une idée des possibilités, ne se veut en aucun cas un apprentissage. Le lecteur désireux de programmer effectivement dans ce langage est invité à se référer aux nombreuses ressources accessibles en ligne, comme le “WikiBook”  ou le manuel de référence du langage  (plus indigeste mais très précis).

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

VERSIONS

Il existe d'autres versions de cet article :

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v2-h2280


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais English

8. Autres aspects du langage

La notion d’unité de programme d’Ada permet de construire automatiquement un système de compilation séparé intelligent, c’est-à-dire ne recompilant que ce qui est nécessaire. Ainsi, une modification dans le corps d’une unité, n’entraînera que la recompilation de l’unité puis une édition de lien pour produire un nouvel exécutable. Par contre, si une spécification est changée, les unités dépendant de cette spécification (via la clause de visibilité with) seront également recompilées.

Ada définit également un certain nombre de paquetages prédéfinis. Parmi ceux-ci, signalons :

  • le paquetage Standard qui contient l’ensemble des identificateurs prédéfinis du langage ;

  • le paquetage Ada qui contient un ensemble de paquetages prédéfinis décrivant par exemple, les caractères (Ada.Characters, Ada.Wide_Characters et Ada.Wide_Wide_Characters), la gestion des chaînes de caractères (Ada.Strings), les entrées/sorties (Ada.Text_IO, Ada.Sequential_IO, Ada.Direct_IO), etc.

Enfin, le standard définit différentes annexes décrivant des traits complémentaires :

  • l’annexe A (Predefined Language Environment) contient les éléments standard du langage (description des paquetages prédéfinis entre autres) ;

  • l’annexe B (Interface to Other Languages) définit les modalités d’interface d’Ada avec d’autres langages ;

  • l’annexe C (Systems Programming) définit les accès au système d’exploitation et aux instructions assembleur si nécessaire ;

  • l’annexe D (Real-Time Systems) détermine le comportement du compilateur sur les aspects temps-réel ;

  • l’annexe E (Distributed Systems) définit les mécanismes permettant de transformer un programme Ada en une séries de composants exécutables sur différentes machines (exécution répartie) ;

  • l’annexe F (Information Systems) définit les modalités propres à la gestion des informations d’un programme, typiquement tout ce qui a trait à la représentation des données ;

  • l’annexe G (Numerics) définit tout ce qui a trait à la gestion des données numériques comme la définition des contraintes de représentation, des fonctions...

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Autres aspects du langage
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) -   *  -  "Ada Programming", Wiki Books https://en.wikibooks.org/wiki/Ada_Programming.

  • (2) -   *  -  "Ada Reference Manual", http://www.ada-auth.org/standards/12rm/html/RM-TTL.html.

NORMES

  • Langage de programmation Ada. - ISO/CEI 8652 - 2012

1 Sites Internet

ADA – Europe Conference

http://www.ada-europe.org

ADA Conformity Assessment Authority

http://ada-auth.org

HAUT DE PAGE

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS