Style d'indentation

Style d'indentation

Le style d'indentation décrit les différentes manières que les programmeurs utilisent pour faire ressortir un bloc de code.

L'indentation se définit par la manière d'arranger les blocs de code, mais surtout par le nombre d'espaces utilisés à chaque niveau.

L'indentation peut ne pas être qu'esthétique. En effet, elle s'avère obligatoire pour certains langages afin de former des blocs ou des lignes valides (par exemple Occam, FORTRAN ou Python).

Sommaire

Styles d'indentation en C

Style K&R

C'est le style employé par Brian Kernighan et Dennis Ritchie pour rédiger les exemples dans leur livre Le Langage C, connu comme le premier livre sur le langage C.

void a_function(void)
{
    if (x == y) {
        something1();
        something2();
    } else {
        somethingelse1();
        somethingelse2();
    }
    finalthing();
}

Il existe de nombreuses variantes de ce style. Une variante relativement commune consiste à placer l'accolade ouvrante des fonctions sur la même ligne que la partie déclarative ; en dehors du C, c'est un des usages recommandés par Sun pour son langage Java, par exemple[1].

Une autre nuance couramment rencontrée peut venir du placement du mot-clé else. Certains codeurs préfèrent en effet positionner celui-ci sur une ligne à part entière.

Style Whitesmiths

if (x == y)
    {
    something1();
    something2();
    }
else
    {
    somethingelse1();
    somethingelse2();
    }
finalthing();

Les usages diffèrent sur la manière de placer les accolades pour les fonctions ; certains auteurs indentent le corps et les accolades par rapport à la partie déclarative, d'autres indentent le corps sans indenter les accolades, d'autres encore n'indentent ni le corps ni les accolades.

Style GNU

void
a_function (void)
{
  if (x == y)
    {
      something1 ();
      something2 ();
    }
  else
    {
      somethingelse1 ();
      somethingelse2 ();
    }
  finalthing ();
}

La recommandation officielle du GNU incite les programmeurs à placer le type de retour de la fonction sur une ligne à part, de sorte à aligner le nom de la fonction sur la première colonne. De même, les parenthèses servant aux appels de fonctions doivent être précédées d'un espace[2].

Ces considérations ne sont toutefois pas limitées au style GNU et il n'est pas rare de rencontrer l'une ou l'autre de ces notations avec d'autres styles d'indentation. Par exemple, le KNF régissant la présentation du code des noyaux BSD requiert que le type de retour d'une fonction soit placé seul sur une ligne précédant le nom de celle-ci.

Style Pico

if (x == y)
{ something1 ();
  something2 (); }
else
{ somethingelse1 ();
  somethingelse2 (); }
finalthing ();

Ce style provient du langage Pico et n'est guère populaire en C.

Styles d'indentation en C++

Style utilisé par Bjarne Stroustrup

C'est le style employé par Bjarne Stroustrup, inventeur du langage C++, pour rédiger les exemples dans son livre décrivant le langage C++.

Celui-ci s'apparente à une variation du style K&R, étendu aux nouveautés apportées par le C++.

Styles Ada, C++, Java, PHP...

Les langages de haut niveau de ce genre, qui dérivent tous d'Algol (1960), emploient un style similaire[3].

Turbo-Pascal, norme de fait du Pascal de 1983 à nos jours (Delphi), a introduit un style de codage plus efficace et plus lisible[4], à deux caractères d'indentation, considéré par certains programmeurs expérimentés comme le meilleur et largement employé dans d'autres langages, par exemple en PHP ou en Ada[3]. (program TimeInterrupt de l'unité standard GetTime.PAS)

begin
  ah := $2c;                             {initialize correct registers}
  with recpack do
  begin
    ax := ah shl 8 + al;
  end;
  intr($21,recpack);                     {call interrupt}
  with recpack do
  begin
    str(cx shr 8,hour);                  {convert to string}
    str(cx mod 256,min);                       { " }
    str(dx shr 8,sec);                         { " }
  end;
  time := hour+':'+min+':'+sec;
end;

Autres Styles

Occam

IF
  sgf.res <> 0
    SKIP
  TRUE
    IF
      compare.strings (ThfareKey, "99999999") <> 0
        SEQ
          ThfareKeyInt := AtoI (ThfareKey)
          ThfareOffsets [ThfareKeyInt] := Offset
      TRUE
        SKIP

En Occam (langage), c'est l'indentation qui est porteuse de l'information d'appartenance à un bloc, ce qui évite les constructions de blocs ("begin", "then", "end"). L'indentation est de deux caractères. Ci-dessus, TRUE est l'équivalent de "default" ou "else" des constructions "if" ou "case of" ("switch" en C).

FORTRAN V

subroutine ch_cap ( c )
  implicit none
 
  character c
 
  if ( 97 <= itemp .and. itemp <= 122 ) then
    c = char ( itemp - 32 )
  end if
 
  return
end

Ce style est très proche du type "dérivé Turbo Pascal" ci-dessus. Notez qu'en FORTRAN standard, les 5 premiers caractères de chaque ligne sont théoriquement réservés, soit aux commentaires ("C" en première colonne), soit aux numéros de lignes (labels) d'après le format des cartes perforées Hollerith (1890) à 80 colonnes (@IBM 1926).

LISP

(defun compall ()
  (do-symbols (s)
    (when (fboundp s)
      (unless (compiled-function-p (symbol-function s))
        (print s)
        (compile s)))))

L'indentation n'est pas obligatoire, est de 2 caractères, et évite les constructions de blocs ("begin", "then", "else", "end").

Voir aussi

Liens externes

Références

  1. (en) Code Conventions for the Java Programming Language
  2. (en) Formatting Your Source Code - The GNU Coding Standards
  3. a et b (fr) standard et guide d'écriture des développements en Ada, JP Germe, société 3ip, 1989
  4. (fr) Turbo-Pascal 3.0 (1986)

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Style d'indentation de Wikipédia en français (auteurs)

Игры ⚽ Нужна курсовая?

Regardez d'autres dictionnaires:

  • Indentation — Une indentation est un retrait par rapport à la norme. Cela peut se comprendre de cinq manières : Sommaire 1 Géographie 2 Littérature 3 Technologies de communication 4 Informatique …   Wikipédia en Français

  • indentation — ● n. f. ►PROG Mise en page minimaliste réalisée à l aide essentiellement de tabulations, afin de rendre un code source (ou tout autre texte) plus lisible, en faisant ressortir visuellement la structure du document, en partic. les structures de… …   Dictionnaire d'informatique francophone

  • Indentation — An indentation may refer to: A notch, or deep recesses; for instance in a coastline, or a carving in rock The placement of text farther to the right to separate it from surrounding text. The first meaning is also applied in hardness measurement… …   Wikipedia

  • Style sheet (desktop publishing) — A Style sheet is a form of separation of presentation and content in desktop publishing programs that store and apply formatting to text.Style sheets are a common feature in most popular desktop publishing and word processing programs, including… …   Wikipedia

  • Indent style — In computer programming, an indent style is a convention governing the indentation of blocks of code to convey the program s structure. This article largely addresses the C programming language and its descendants, but can be (and frequently is)… …   Wikipedia

  • Programming style — is a set of rules or guidelines used when writing the source code for a computer program. It is often claimed that following a particular programming style will help programmers to read and understand source code conforming to the style, and help …   Wikipedia

  • Indenter — Indentation Une indentation est un retrait par rapport à la norme. Cela peut se comprendre de cinq manières : Sommaire 1 Géographie 2 Littérature 3 Technologies de Communication 4 Informatique …   Wikipédia en Français

  • Eric Allman — Eric Paul Allman Naissance 1955 …   Wikipédia en Français

  • indent — Développeur Projet GNU Dernière version …   Wikipédia en Français

  • Règles de codage — Les règles de codage sont un ensemble de règles à suivre pour uniformiser les pratiques de développement logiciel, diffuser les bonnes pratiques de développement et éviter les erreurs de développement classiques au sein d un groupe de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”