Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Programmation  IDE  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Les remarques
Les opérateurs
Les instruction conditionnelles
Les instructions de boucles
Type de données
Définition de fonction
Référence de mots réservés (mots clefs)
Référence de procédures et fonctions
Les modules (Packages)
Les premiers pas
Les éléments lexicaux
Les déclarations et types
Les noms et les expressions
Les instructions
Les sous-programmes
Les paquets
Les règles de visibilité
Les tâches
Structure du programme et problèmes de compilation
Les exceptions
Les unités génériques
Clauses de représentation et fonctionnalités dépendantes de la mise en oeuvre
Les entrées-sorties
Bonjour
Biochimie
Géographie
Géométrie
Histoire
Mathématique
Médicale
Météorologie
Océanographie
Sport
Temps
Trigonométrie
Validation
Calcul du calcium corrigé
Distance en Km entre deux longitudes et latitudes
Aire d'un cercle
Aire d'une surface de prisme rectangulaire
Aire d'un triangle
Distance entre deux points
Chiffre romain
Ackermann
Exp
Factoriel
Fibonacci
Log
Nombre premier
Odd
Random
Sqrt
Triangle Pascal
Hauteur utérine
Unité de mesure
Fréquence des vagues
Hockey
Année bissextile
Date de la Pâque
Atn/ATan/ArcTan
Courriel
AdaGIDE
GNAT Programming Studio
SET's Editor
Attributs de langages prédéfinis
Les pragma de langage prédéfinis
Environnement de langage prédéfini
Référence de termes et du vocabulaire
Téléchargement
Préface
Notes légal
Dictionnaire
Recherche
Fiche technique
Type de produit : Langage de programmation
Auteur : CII Honeywell Bull
Date de publication : 1980

Introduction

L'Ada tire son nom de la femme Ada Lovelace, soit la première personne connu dans l'histoire ayant écrit un programme. Le langage de programmation Ada a été développé au début des années 1980 pour le Département de la Défense américaine par l'équipe CII-Honeywell Bull dans un projet intitulé «Green».

Dans les faits, on constate un descendant directe du langage de programmation Pascal mais à la différence de son frère le Modula, il semble beaucoup plus cohérent. Il est très stricte pour indiquer l'utilisation du code source externe. Il est souvent utilisé pour des systèmes en temps réel et embarquer à cause de la profondeur de sa technique qu'il dégage. La philosophie du langage de programmation Ada tourne autour de mots réservés plutôt que symboles. Ainsi, il se révèle fiable, portable, modulaire, réutilisable, efficace, facile à maintenir et propose en plus le masquage des informations, les types de données abstraits. Par conséquent, tous les compilateurs de Ada doivent donc réussir tous ses aspects. Aussi, le langage de programmation Ada est conçu pour des systèmes logiciels de longues durée et extrêmement fiables. Le langage de programmation Ada inclut des fonctionnalités permettant de définir des modules (appelé package en anglais) de types, d'objets et d'opérations associés. Les modules peuvent être paramétrés et les types peuvent être étendus pour prendre en charge la construction de bibliothèques de composants logiciels réutilisables et adaptables. Les opérations peuvent être intégrés en tant que sous-programmes en utilisant des structures de contrôle séquentielles classiques, ou en tant qu'entrées incluant la synchronisation de processus léger de contrôle simultanés dans le cadre de leur appel. Le langage de programmation traite également la modularité au sens physique du terme, avec une facilité de prise en charge de la compilation séparée. Le langage de programmation comprend les facilités complète pour la prise en charge de la programmation simultanée en temps réel. Les erreurs peuvent être signalées comme des exceptions et traitées explicitement. Le langage de programmation couvre également la programmation des systèmes; il nécessite un contrôle précis de la représentation des données et de l'accès aux propriétés dépendantes du système. Enfin, un environnement prédéfini de modules standard est fourni, y compris des fonctionnalités pour, entre autres, la saisie des entrées, la manipulation de chaînes, les fonctions élémentaires numériques et la génération de nombres aléatoires.

A l'heure actuel, les développeurs d'Ada se regroupe essentiellement autour du AdaCore et du GNAT GPL. Tandis que la norme suivi est la norme Ada 2012 définit dans le document ISO/IEC 8652:2012(E). Cette norme ajoute des conditions préalables, des post-conditions, des invariants de type, des fonctions d'expression et des expressions qualitatives. Ainsi, elle permet de spécifier dans le code actif des éléments nécessitant généralement des outils externes (correcteurs, documenteurs et générateurs de documentation, par exemple) et permet au compilateur à l'exécution de garantir la fiabilité (par opposition aux commentaires trompeurs ou obsolètes). Enfin, ceux préférant l'approche .NET peuvent utiliser le langage de programmation A# étant dans les faits une version Ada avec le cadre d'application .NET de Microsoft. De plus, les outils pour développer en Ada sont relativement nombreux : AdaGIDE, GNAT,...

Normes

Voici les normes majeurs du langage de programmation Ada :

Normes Année Normalisation Remarque
Ada 83 1983/1987 Normalisé par l'ANSI avec ANSI/MIL-STD-1815A-1983 en 1983 puis l'ISO avec ISO 8652:1987 en 1987 Il s'agit du premier véritable standard
Ada 95 1995 Normalisé avec la norme ISO/CEI 8652:1995 Ajout de la programmation orientée objet (POO)
Ada 2005 2005 Normalisé en se basant ISO/IEC 8652:1995 avec les mises à jour par les modifications du Corrigendum technique 1 (ISO/IEC 8652:1995:TC1:2000) et Amendement 1 (ISO/IEC 8652:AMD1:2007). Ajoute une notation par points de type C++ pour l'envoi d'appels sur des objets, des opérations anonymes, des génériques améliorés, des bibliothèques dont une pour les conteneurs.
Ada 2012 2012 Normalisé avec la norme ISO/IEC 8652:2012(E) Ajoute des conditions préalables, des post-conditions, des invariants de type, des fonctions d'expression et des expressions qualitatives.

Domaine d'application

Le langage de programmation Ada est un langage de programmation s'appliquant bien aux domaines d'applications suivants :

De plus, la programmation Ada incarne des principes modernes en génie logiciel. Il s'agit d'un excellent langage de programmation à utiliser pour l'enseignement et l'apprentissage de cours d'initiation et de perfectionnement en informatique. Dans le domaine des technologies en temps réel, Ada est un des langages de programmation les plus intéressant. Le langage de programmation a plusieurs facettes digne d'intérêt. C'est un langage de programmation polyvalent, avec une base classique, basé sur la pile. Il ne se limite pas à une méthodologie de développement particulière. La syntaxe est simple et les instructions contrôlées sont structurées. Les intégrations pour la composition des données sont flexibles. La vérification de type est forte et efficace, incorporant les fonctions ou sous-programmes de modularisation de code classiques. Il a également la gestion des exceptions, étant un système détectant et répondant de manière appropriée aux conditions d'exécution exceptionnelles.

Remarques



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Samedi, le 25 août 2012