Analyse et programmation langage ADA Informatique Informatique 2 2ème ème année

Analyse et programmation langage ADA Informatique Informatique 2 2ème ème année année R. Chelouah R. Chelouah rachid.chelouah@insa-toulouse.fr Date : 14.07.2003 Sommaire ƒ ƒ Chapitre I : Présentation ƒ Chapitre II : Unités lexicales ƒ Chapitre III : Types et sous types ƒ Chapitre IV : Ordres(Sélection, cas, itération, ... ) ƒ Chapitre V : Sous programmes ƒ Chapitre VI : Tableaux (array) ƒ Chapitre VII : Chaînes de caractères (String) ƒ Chapitre VIII : Articles (record) ƒ Chapitre IX : Pointeur ƒ Chapitre X : Fichiers (File) ƒ Chapitre XI : Paquetages simples(package) ƒ Chapitre XII : Généricité ƒ Chapitre XIII : Tâches Sommaire ƒ ƒ Chapitre I : Présentation ƒ Chapitre II : Unités lexicales ƒ Chapitre III : Types et sous types ƒ Chapitre IV : Ordres(Sélection, cas, itération, ... ) ƒ Chapitre V : Sous programmes ƒ Chapitre VI : Tableaux (array) ƒ Chapitre VII : Chaînes de caractères (String) ƒ Chapitre VIII : Articles (record) ƒ Chapitre IX : Pointeur ƒ Chapitre X : Fichiers (File) ƒ Chapitre XI : Paquetages simples(package) ƒ Chapitre XII : Généricité ƒ Chapitre XIII : Tâches 4 Chapitre I : Présentation „ I.1 Nombres et leurs représentations en mémoire „ I.2 Analyse et programmation „ I.3 Spécificités du langage ADA „ I.4 Apprentissage d'un langage ¾ Approche descendante ¾ Approche ascendante „ I.5 Mise en page d'un programme 5 I.1 Nombres et leurs représentations en mémoire „ Les nombres-littéraux- ont une valeur déterminée par les signes qui les représentent. „ Un nombre littéral est soit : ¾ Decimal (représenté en base 10) ¾ Non décimal (bases 2 à 16 inluses) ¾ Entier (sans partie fractionnaire) ¾ Réel (avec partie fractionnaire, éventuellement nulle) 7 I.1 Nombres et leurs représentations en mémoire Nombres entiers Tout entier positif n peut s’écrire sous la forme : n = cq2q + cq-12q-1 + ….+ c121 + c020 Si cq = 1 ou 0 alors cette représentation est une représentation binaire du nombre n Exemple le nombre 29 s’écrit en binaire 11101 Écriture des entiers en binaire en mémoire Le nombre 29 en binaire est stocké en mémoire de 32 bits Nombres réels Un nombre réel est représenté en machine sous forme d’une mantisse, d’un exposant et d’un bit de signe 0 0 0 1 0 1 1 1 0 bit de signe (1 pour – et 0 pour + ) 231 230 21 20 exposant mantisse 0 0 0 1 1 0 0 0 0 0 231 230 222 21 20 223 8 I.2. Analyse et programmation „ Algorithme et programmation ¾ Informatique (computer science) ¾ Algorithme (algorithm) est une suite d'opérations à effectuer pour résoudre un problème „ Algorithme de résolution de l'équation ax + b = 0 ¾ Si a est nul, l'équation est insoluble et l'algorithme est terminé ¾ Si a est non nul, transposé b dans l'autre membre, et l'équation devient ax = -b ¾ Diviser chaque membre par a et l'on obtient le résultat cherché est x = „ Retrait d'argent au distributeur „ Appel téléphonique sur un mobile „ Démarrage d'une voiture a b − 9 I.2. Analyse et programmation „ Algorithme de mise en marche d'une voiture ¾ mettre la clé de le démarreur ¾ serrer le frein à main ¾ mettre le levier de vitesse au point mort ¾ répéter les opération suivantes tant que le moteur ne tourne pas 9 mettre la clé dans la position marche 9 tourner la clé dans le sens des aiguilles d'une montre 9 attendre quelques secondes 9 si le moteur ne tourne pas, remettre la clé dans la position initiale ¾ enclocher la première vitesse ¾ desserrer le frein à main „ Une fois cet algorithme codé dans le langage de programmation, le programme ainsi créé doit être : ¾ soit traduit complètement en langage machine par le compilateur ¾ soit directement interprété (interpreted) 10 I.2. Analyse et programmation „ Méthode de décomposition par raffinements successifs ¾ Cette méthode est basée sur l'idée que, étant donné un problème à résoudre, il faut le décomposer en sous-problèmes de telle manière que 9 Chaque sous-problème constitue une partie du problème donné 9 Chaque sous-problème soit plus simple (à résoudre) que le problème donné 9 La réunion de tous les sous-problèmes soit équivalente au problème donné ¾ Exemple : Construire une voiture Construire la carrosserie Construire le chassis Construire le moteur Construire la partie électrique Construire la partie mécanique 11 I.3. Spécificités du langage ADA „ Les avantages : ¾ Très proche de l’algorithmique ¾ Fortement typé ¾ Nombreuses vérifications faites par le compilateur ¾ Programmation modulaire obligatoire ¾ Structuration ¾ Abstraction (encapsulation, compilation séparée) ¾ Temps réel ¾ Interfaçage une programmation plus propre avec moins d’erreurs „ Les inconvénients : ¾ Contraignant 12 I.3. Spécificités du langage ADA „ Deux types de fichiers en ADA : ¾ Fichiers .ADB : ADA Body Contiennent les corps du programme (équivalent au .c du C) ¾ Fichiers .ADS : ADA Spécification Contiennent les spécifications (équivalent au .h du C++) „ ADA manipule des objets. Qu’est qu’un Objet ? ¾ Un objet est une constante ou une variable. ¾ Un objet est typé. „ Qu’est qu’un Type ? ... ¾ un ensemble de valeurs ¾ un ensemble d’opérations « primitives » (sous-programmes) sur ces valeurs. „ ADA ne fait pas de différence entre minuscule et majuscule sur les noms des identificateurs „ Les commentaires en ADA : -- Ceci est un commentaire qui -- s’étend sur plusieurs lignes 13 I.3. Spécificités du langage ADA ƒ Un programme ADA Il comporte : ¾ un programme principal ¾ d’autres unités de programme 9sous-programmes 9paquetages Le programme principal ¾ c’est une procédure ¾ appelle les services d’unité(s) de programme 14 I.4. Apprentissage d'un langage „ Approche descendante : On commence par un exemple et on essaie de l’analyser, et de comprendre la syntaxe et la sémantique ¾ Va du composé au simple ¾ Faite d’exemples simples ¾ Vise à donner une connaissance globale (mais floue) ¾ Méthode applicable aux langages faciles comme (Basic) „ Approche ascendante : décrire dans un ordre rigoureux la syntaxe, du plus élémentaire au plus général ¾ Procède exactement en sens inverse ¾ Vise à fournir des modes d’emploi précis ¾ Méthode utilisable pour les langages simples dont la syntaxe est construite logiquement et sans trop de contraintes (Pascal) „ Approche mixte : Il est possible de recourir alternativement aux deux méthodes dans le cas où le langage est plus riche que rigoureux (langage C) ou successivement dans le cas où le langage est plus rigoureux que riche (ADA) 15 I.4. Apprentissage d'un langage ƒ 1.2.1 Éléments à traduire ƒ 1.2.2 Unités de programme ƒ 1.2.3 Types ƒ 1.2.4 Exemple ƒ 1.2.5 Dialogue programme utilisateur 16 I.4.1 Éléments à traduire ¾ l'algorithme principal ¾ les objets définis dans les lexiques ¾ les instructions élémentaires (affectation) ¾ les formes itératives ¾ les formes conditionnelles ¾ les formes d'analyse par cas ¾ les actions (procédures) et fonctions 17 I.4.2 Unités de programme ƒ Une unité de programme comporte deux parties : ¾ la partie déclaration 9 spécification 9 élaborer les déclarations ¾ la partie instructions 9 corps 9 exécuter les instructions spécification corps 18 I.4.2 Unités de programme lexique principal définition des variables de l'algorithme principal et notification des actions et des fonctions utilisées algorithme principal texte de l'algorithme Notation algorithmique ADA ƒ identification auteur, date ƒ définition de l'application ƒ utilisation des packages -- algorithme principal procedure AlgoPrinc is -- lexique de l'algorithme principal begin -- AlgoPrinc -- traduction de l'algorithme principal end AlgoPrinc ; ƒ Unité de programme 19 I.4.2 Unités de programme spécification corps begin end; with procedure, function, declare, package body, task body inclusion de spécifications externes (paquetages) 20 I.4.2 Unités de programme with Text_IO ; -- Appel aux bibliothèques procedure Afficher is -- Partie Déclaration begin --Afficher -- Partie Instructions exception when ... => -- Traite-exception end Afficher; 21 I.4.2 Unités de programme -------------------------------------------------------------------------------------------- -- Fichier : Afficher.adb -- Application : Hello world! -- Auteur : Alexandre Meyer -- Liste des packages utilisés par notre programme ---------------------------------------------------------------------------------------------- with Text_IO; procedure Afficher is begin -- Afficher Text_IO.Put(" Salut tout le monde !"); exception -- traitement des exceptions when others => Text_IO.Put_Line ("Erreur dans le programme principal"); end Afficher; 22 I.4.3 Types N : entier { définition } B : booléen { déf. } C : caractère { déf. } R : réel { définition } CH : chaîne { déf. } N : Integer; -- définition B : Boolean; -- définition C : Charater; -- définition R : Float; -- définition CH : Unbounded_String; -- définition Remarque: Il existe d’autres types pour les chaînes. Notation algorithmique ADA ƒ Un type définit les valeurs que peut prendre un objet et les opérations qui lui sont applicables. Il existe 4 grandes classes : les types scalaires ; les types composés; les types privés; les types d'accès; les types dérivés Les types scalaires, peuvent être soit discrets (entier, énumérés), soit numériques réels. 23 I.4.4 Exemple „ uploads/Management/ adacours.pdf

  • 20
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Apv 17, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 1.9490MB