Beruflich Dokumente
Kultur Dokumente
Ces conventions sont bases sur celles utilises pour l'criture de code en Java, mais aussi en C et C++. Elles ne sont qu'un extrait, mais devront tre respectes pour toute criture de code ADA.
2.
Un fichier source est constitu de sections spares par des lignes blanches et identifies par un commentaire optionnel. Les sections sont : Les clauses d'import d'units extrieures : with et use. La procdure principale, qui elle-mme est structure de la faon suivante : les dclarations de types utilisateurs, les variables locales de la procdure principale, les sous-programmes utiliss par la procdure principale, le corps de la procdure principale.
3.
3.1 Types
Les noms de types commencent toujours par une majuscule. S'ils sont composs de plusieurs mots, chaque mot commence par une majuscule et il n'y a pas de sparateurs. Exemples : MonType, PileDEntiers, GrapheNonCyclique.
3.2 Variables et sous-programmes
Les noms de variables et de sous-programmes sont identiques aux noms de types sauf qu'ils commencent toujours par une minuscule. Exemples : maVariable, rechercheDuMinimum, indexDuMinimum, poidsFort.
3.3 Constantes
Les constantes sont toutes en majuscules et les diffrents mots sont spars par des "souligns" ('_'). Exemples : MAX_INT, NOIR, BLEU_CLAIR, MATRICE_IDENTITE.
4.
Blocs et mots-cls
Les mots-cls sont crits en minuscule. Les mots-cls signalant le dbut et la fin du bloc sont toujours aligns sous le premier caractre du mot-cl signalant le dbut du bloc.
procedure sousProgrammeProc (param1 : in Integer; param2 : in Float) is i : Integer; -- variable de travail begin - instructions; end sousProgrammeProc;
5.
Indentation
Le code situ l'intrieur d'un bloc, signal par un mot cl (begin ou loop), doit tre indent, c'est-dire dcal de quelques caractres vers la droite (pas plus de 4 pour viter les lignes de plus de 80 caractres). Toutes les instructions appartenant un mme bloc sont alignes. Le end est toujours align gauche avec le premier caractre du mot-cl signalant le dbut du bloc. (ici : procedure, while ou if).
-- structure gnrale d'une procdure principale with Ada.Integer_Text_io ; -- pour pouvoir lire et crire des entiers
procedure maProcPrincipale is type MonType is ; -- dfinition de types utilisateurs maVariable : MonType; -- dclaration de variables locales -- sous-programme utilis dans maProcPrincipale procedure maProcedure (parametre : in out Integer) is i : Integer; j : Integer; begin i:= 0 ; while (i < parametre) loop i := i + 1; j := i * 2; while (j < parametre) loop j := j + i; if (j > i) then -- instructions...; end if; -- instructions...; end loop; j := 0; end loop; parametre := j; end maProcedure; begin -- instructions de la procdure principale; maProcedure(maVariable); end maProcPrincipale;
6.
Longueur de lignes
Limiter la longueur des lignes 80 caractres (pour faciliter la lecture l'cran et l'impression sur papier). Si des instructions sont trop longues, replier le code de faon faciliter la comprhension.
if ( (condition1 and condition2) or (condition3 and condition4) or (condition5 and condition6)) then -- test repli sur 3 lignes
-- instructions;
7.
Dclarations et instructions
Rgles : on crit une dclaration de variable locale par ligne, accompagne d'un commentaire donnant son rle, on crit une instruction par ligne,
on laisse un blanc : entre les mots-clefs if, while, then et la parenthse ouvrante ou fermante,
if (condition1) then
on ne met pas de blanc entre un oprateur unaire et son oprande (ici entre le '' et le '1')
par1 := -1;
8.
Cartouche de sous-programmes
Un cartouche est un commentaire, plac juste avant chaque sous-programme, qui contient une brve description : du rle du sous-programme, du rle de chaque paramtre entrant, du rle de la valeur retourne (fonction) ou des valeurs retournes (procdure).
-- Rle : calcule et retourne x la puissance n -- Entres : x entier et n exposant entier -- Sortie : retourne x^n function elevPuissance (x : Integer; n : Integer) return Integer is -- dclarations resultat : Integer := 1; begin -- instructions for i in Integer range 1..n loop resultat := resultat * x; end loop; return resultat; end elevPuissance;