You are here: Tutoriels » L'Ada » Premier programme

Voici un premier programme en Ada, hello.adb

with Text_IO; use Text_IO;
procedure hello is
begin
  Put("hello world!");
end hello;

Remarques générales :
  • Ada n'est pas "case sensitive " c'est-à-dire qu'on peut écrire en majuscule ou en minuscule indifféremment
  • Chaque instruction se termine par un ";" et pour faire beau, on en met aussi après les end
  • Les fichiers sources ada ont pour extension .adb pour les implémentations (.c en C) et .ads pour les spécifications (le .h du C)
  • Les commentaires en ada se notent -- commentaires. Tout ce qui suit -- sur la même ligne est considéré comme étant des commentaires. NOTE: En Ada on met en générale les commentaires après la spécification de la fonction et non avant
Remarque spécifique:
  • Dans notre cas, on utilise des options de compilation assez restrictives pour forcer une certaine homogénéité du code. Ainsi, même si Ada n'est pas "case sensitive" en général, dans le cadre du club, il l'est. Les mots clefs doivent être écrit en minuscule et les nom des variables sous cette forme : Un_Nom_De_Variable.

La première ligne ressemble un peu à un #include du C. with some_package veux dire que l'on va utiliser des fonctions de some_package. Ici, on veut utiliser Put qui affiche un texte à l'écran. Afficher un texte fait partie des entrées-sorties de textes et donc cette fonction se trouve logiquement dans le package Text_IO.

Maintenant qu'on a dit au compilateur qu'on allait utiliser des fonctions de Text_IO, deux choix s'offrent à nous : soit on préfixe chaque appel de fonction par Text_IO., ce qui donnerait Text_IO.Put("hello world!");, soit on dit au compilateur de se débrouiller tout seul avec use Text_IO;. Cette directive indique au compilateur de chercher dans ce package s’il ne connaît pas une fonction. Ici, lorsqu'il va voir Put("hello world!"), il ne connaît pas de fonction Put, mais comme on lui a dit d'aller chercher dans Text_IO, il va regarder dans ce package et la trouver.

À la 2ème ligne, on définit une procédure, c'est à dire une fonction qui ne renvoie rien. La définition d'une procédure suit le schéma suivant :
procedure nom_de_la_procedure(liste des arguments) is 
  declaration des variables 
begin 
  liste d'instructions
end nom_de_la_procedure; 

Ici, notre procédure hello n'a pas d'argument donc on ne met rien, même pas les parenthèses. La liste d'instructions se réduit à une instruction : Put("hello world");. Cette instruction est un appel de fonction, la fonction Put qui a un argument : une chaîne de caractères. Comme en C, les chaînes de caractères s'écrivent entre guillemets doubles ", "hello world!" est donc une chaîne de caractères. Les caractères seuls s'écrivent entre apostrophes ', toujours comme en C.

Voilà pour le 1er programme.