Fethi Amine Kadri Mohamed

Slides:



Advertisements
Présentations similaires
Cours n° 1 Introduction à la programmation
Advertisements

Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Module 5 : Implémentation de l'impression
Introduction: Concepts de la programmation
La machine virtuelle virtuelle utopie et/ou réalité ?
Algorithmique Résume.
INTRODUCTION.
Les Ateliers de Génie Logiciel
Initiation à la programmation et algorithmique
Le modèle O.S.I..
Calcul et programmation au lycée avec Scilab
le profil UML en temps réel MARTE
Démarche de résolution de problèmes
Les Systèmes d’Exploitation
Initiation à la conception de systèmes d'information
Réalisée par :Samira RAHALI
Algorithmique et Programmation
Paradigmes de Programmation
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Techniques de test Boulanger Jean-Louis.
Structures de données IFT-2000
Structures de données IFT Abder Alikacem Gestion des exceptions Département dinformatique et de génie logiciel Édition Septembre 2009.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
Semaine #1 INF130 par Frédérick Henri.
IFT 6800 Atelier en Technologies d’information
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Chapitre 9 Les sous-programmes.
Chapitre 3 Syntaxe et sémantique.
Types de données abstrait et mécanismes d'encapsulation
1-1 Chapitre 5: Les variables Introduction Les noms Les variables Les attributions (bindings) Portée et durée de vie L'environnement de référence Les noms.
Partie II Sémantique.
Standard Template Library
Programmation logique Le Langage PROLOG
Sensibilisation a la modelisation
Procédures et fonctions
Les différents langages de programmation
Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG.
Programmer en langage c
Présentation de CORBA et de IIOP
Paradigmes des Langages de Programmation
Packages et Types De la Spécification Formelle A l'implémentation Ada.
INTRODUCTION.
Supports de formation au SQ Unifié
8INF856 Programmation sur architectures parallèles
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Créer des packages.
Algorithmes et Programmation
INF8505: processeurs embarqués configurables
Un survol du language C.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
CSI 3525, Histoire, page 1 Aperçu historique Voir le chapitre 2 du livre pour plus de détails.
Cours n° 1 Présentation du langage C++
Introduction au Génie Logiciel
Module I3 algorithmique et programmation
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Le langage Racket (Lisp)
Programmation Système et Réseau
Initiation à la conception des systèmes d'informations
Approche Cross layer Dr Mekkakia Maaza Zoulikha Cours M2 SIR
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Introduction et Généralités sur l’Algorithmique
1 Le système GNAT / Ada95 La perspective du projet depuis New York University Edmond Schonberg New York University et Ada Core Technologies Mars 2003.
La programmation par objets Principes et concepts Etude de Smalltalk.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O. et au.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
eXtensible Markup Language. Généralités sur le XML.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Introduction Module 1.
Café In: A quoi ca sert la recherche sur la programmation? Comment peut on faire travailler des ordinateurs ensemble? Ludovic Henrio SCALE TeamSCALE Team.
Transcription de la présentation:

Fethi Amine Kadri Mohamed Le langage ada Fethi Amine Kadri Mohamed

Historique les premières versions de ada remontent au début des années 1980. Le langage doit son nom à Ada Lovelace, mathématicienne britannique, considérée par les informaticiens comme la première programmeuse de l’histoire, car elle a développé une forme de code de pour le moteur analytique de Charles Babbage. La première norme Ada était Ada 83. Le second, Ada 95, a ajouté l'orientation essentiellement objet. Ada 2005 ajoute un C + +,comme la notation par points pour l'envoi des appels sur les objets, les opérations anonymes, les génériques améliorés, les bibliothèques, dont un pour les conteneurs (vecteurs, des décors, des cartes), et bien plus encore.

Définition du langage ada: Ada est un langage de programmation orienté objet Ada est un langage modulaire, à typage statique, offrant une syntaxe claire inspirée de Pascal. Il possède une puissance d’expression considérable couvrant un large domaine d’applications. Il a apporté des améliorations marquantes notamment dans les domaines des logiciels critiques, embarqués, et temps réel. Ce langage de programmation à contrainte forte, notamment dans le typage, enserre le programmeur dans un corset que la plupart jugent insupportable

Autre définition : On peut aussi dire que ada est un langage de programmation conçu pour soutenir la construction de longue durée de vie, des systèmes informatiques hautement fiables. La langue comprend des installations de définir des paquets de types connexes, des objets, et des opérations. Et un Langage de programmation structuré. Ada a été conçu en réponse à un cahier des charges émis par le DoD (Département of Défense) des États-Unis. Sa définition ainsi que son évolution ont bénéficié à ce titre des contributions de nombreux experts, universitaires, développeurs, et utilisateurs industriels. Il est normalisé en tant que standard international.

Quelques particularités typage statique : c’est associer à un symbole dénotant une variable Module : désigne parfois un fichier de code de programmation ou un fichier de librairie statique ou dynamique. Syntaxe: claire et non ambiguë (inspirée de celle du langage Pascal), Généricité: C'est un concept important pour un langage de haut niveau car il permet d'augmenter le niveau d'abstraction du langage. multi-tâche traits temps réel intégrés au langage (tâches, objets protégés, interruptions), bibliothèques normalisées

Ada est donc un langage bien vivant et qui suit l'évolution des technologies 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 Le profil Ravenscar est un sous-ensemble du langage Ada dédié aux systèmes temps réel nécessitant une grande sûreté de fonctionnemen ISO: L'Organisation Internationale de Normalisation (International Organization for Standardization), ou ISO est un organisme de normalisation international

Les buts d’Ada Contrairement aux autres langages, Ada a été développé avec des buts précis et des besoins explicites Les besoins sont apparentés et quelques fois en conflits! e.g. les unités de compilation séparées et la programmation concurrente entrent en conflit avec la simplicité visée du langage Les buts principaux sont: fiabilité simplicité modularité efficacité

FIABILITÉ ET FACILITÉ DE MAINTENANCE Accent sur la lisibilité plutôt que sur la facilité d'écriture Notations favorisant les erreurs ont été évitées Constructions doivent avoir une sémantique simple et non ambiguë

SIMPLICITÉ Le langage a été gardé aussi petit que possible Les écueils d'une complication excessive ont été évités. Les constructions du langage sont intuitives pour l'utilisateur.

MODULARITÉ Le langage doit supporter et favoriser les logiciels modulaires et réutilisables, les unités de compilation séparées.

EFFICACITÉ Ada a évité des constructions qui nécessitent des compilateurs trop élaborés, Une utilisation inefficace de la mémoire, ou du temps d'exécution du matériel spécialisé.

LES PRINCIPES Les buts d'Ada de simplicité, de fiabilité, de maintenance, et d'efficacité peuvent être atteints en utilisant les principes du génie logiciel: abstraction, dissimulation d'information, modularité, programmation embarquée, uniformité, complétude, confirmabilité

STRUCTURES DE CONTRÔLE Ada supporte les énoncés structurés: énoncés conditionnels ( if et case) boucle ( for et while) Ada fournit des sorties (exit) à différents niveaux afin d'éliminer les besoins des "goto" Ada possède des types structurés de données, des types étiquetés (tagged) dont on peut hériter, en plus des types privés (private) qui permettent de protéger les donnée

NOMS ASSOCIÉS À DES ENTITÉS Ada associe des noms à des entités, ex: variable, constante, exception, type, paquetage, tâche, etc.... Cette nomenclature améliore: La vérification des types La lisibilité du programme La modularité, Les abstractions.

MULTI-TÂCHES MULTI-PROCESSEURS Un multiprocesseur est un ordinateur muni de plusieurs processeurs qui s’exécutent physiquement en parallèle. Les tâches d'Ada permettent le développement de logiciels contrôlant plusieurs processeurs. Les tâches permettent l'implémentation d'applications synchronisées et communiquant entre elles.

Les constructions d'Ada Minimisent les besoins d'ASM, Permettent d'isoler les dépendances de la machine, Simplifient l'entretien du logiciel. ASM est une bibliothèque Java de manipulation et d'analyse du bytecode Java

QUELQUES EXEMPLES : Transformation d’une chaîne de caractères en entier: Obtenir le maximum de deux entiers: La fonction suivante retourne le double du maximum de deux entiers A : constant Integer := Integer'Value ("12"); -- A vaut 12 Function Double_Maximum (X, Y : Integer) return Integer is begin return 2 * Integer'Max (X, Y); end Double_Maximum;

Avantages et inconvénients 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’erreur

Les inconvénients : Contraignant Pas très repondu.

CONCLUSION Arrivé à ce point on posera certainement la question : pourquoi n'est-il pas plus répandu ? . Si le langage s'est bien introduit dans les domaines sensibles (aéronautique, aviation, domaine militaire, nucléaire, contrôle de processus), sa diffusion est restée modeste dans les domaines de la programmation traditionnelle : scientifique, gestion, programmation système, alors qu'on assistait à une montée en force du langage C, et plus récemment de C++