Privacy Policy Cookie Policy Terms and Conditions

[HOME PAGE] [STORES] [CLASSICISTRANIERI.COM] [FOTO] [YOUTUBE CHANNEL]


Programmation structurée

Programmation structurée

La programmation structurée constitue un sous-ensemble de la programmation impérative. C'est un paradigme important de la programmation, apparu vers 1970. Elle dérive de travaux de Nicklaus Wirth pour son Algol W et reçut son coup d'envoi avec l'article fondateur de Dijkstra dans Communications of the ACM nommé GO TO statement considered harmful (L'instruction GOTO est considérée nocive)[1].

Elle est en effet célèbre pour son essai de suppression de l'instruction goto ou du moins pour la limitation de son usage à des cas inhabituels et graves (que l'on nommerait plutôt des exceptions).

Usage

La programmation structurée est possible dans n'importe quel langage de programmation procédural, mais certains comme le FORTRAN IV s'y prêtaient très mal. Vers 1970, la programmation structurée devint une technique populaire, et les langages de programmation procéduraux intégrèrent à l'image d'Algol et en le dépassant des mécanismes rendant aisée la programmation structurée (faisant tomber en désuétude des langages parfois novateurs, mais qui facilitaient une programmation dé-structurée). Parmi les langages de programmation les plus structurants, on trouve PL/I, Pascal et, plus tardivement pour les projets de très grande taille, Ada.

Pour l'écriture de fragments assez courts, la programmation structurée recommande une organisation hiérarchique simple du code. On peut le faire dans la plupart des langages de programmation modernes par l'utilisation de structures de contrôles while, repeat, for, if .. then .. else. Il est également recommandé de n'avoir qu'un point d'entrée pour chaque boucle (et un point de sortie unique dans la programmation structurée originelle), et quelques langages l'imposent. Cette technique est toutefois peu suivie, car elle encourage l'utilisation de plus nombreuses variables pour remplacer les sorties immédiates par des états ; or la multiplication des variables augmente la charge cognitive pour comprendre un fragment de code.

Les programmeurs décomposent leur code en modules (appelés fonctions et procédures dans certains langages) ne dépassant guère 60 lignes, afin d'être présente en entier sous les yeux. On recommande aux programmes d'éviter l'usage des variables globales afin de prévenir les effets de bord (side effects) : les sous-programmes utilisent donc des variables locales et peuvent agir sur des arguments fournis explicitement en paramètre, par valeur (leur contenu) ou par référence (l'adresse de ce contenu). Ces techniques aident à créer des petits morceaux de code, faciles à comprendre isolément et sans nécessité d'avoir à en connaître le contexte.

Méthodologie associée

La programmation structurée est souvent utilisée conjointement à la méthodologie de développement par décompositions successives (top-down design), mais ne se confond pas avec elle : Smalltalk, bon langage de conception top-down, n'est par exemple guère structuré. Dans cette approche les programmeurs décomposent la structure, à large échelle, d'un programme en termes d'opérations plus petites, codent et testent ces petites opérations, et les assemblent pour réaliser le programme (voir aussi Cycle en V). Cela n'est évidemment possible que sur des domaines applicatifs déjà bien connus, sans quoi la décomposition risque dès le départ de ne pas être la bonne, ce qui est très difficile à modifier ensuite.

À la fin du XXe siècle la plupart des programmeurs avaient adopté la programmation structurée. Dijkstra rappelait qu'un programme devait d'abord être compris par le programmeur et ses collègues chargés de la maintenance, et que si cette tâche était accomplie, le reste — le faire exécuter à la machine — n'était plus que formalité.

Antonyme

  • Programmation spaghetti

Références

  1. http://www.ifi.unizh.ch/req/courses/kvse/uebungen/Dijkstra_Goto.pdf
  • Portail de la programmation informatique
This article is issued from Wikipédia - version of the Monday, December 29, 2014. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.
Contents Listing Alphabetical by Author:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Unknown Other

Contents Listing Alphabetical by Title:
# A B C D E F G H I J K L M N O P Q R S T U V W Y Z Other

Medical Encyclopedia

Browse by first letter of topic:


A-Ag Ah-Ap Aq-Az B-Bk Bl-Bz C-Cg Ch-Co
Cp-Cz D-Di Dj-Dz E-Ep Eq-Ez F G
H-Hf Hg-Hz I-In Io-Iz J K L-Ln
Lo-Lz M-Mf Mg-Mz N O P-Pl Pm-Pz
Q R S-Sh Si-Sp Sq-Sz T-Tn To-Tz
U V W X Y Z 0-9

Biblioteca - SPANISH

Biblioteca Solidaria - SPANISH

Bugzilla

Ebooks Gratuits

Encyclopaedia Britannica 1911 - PDF

Project Gutenberg: DVD-ROM 2007

Project Gutenberg ENGLISH Selection

Project Gutenberg SPANISH Selection

Standard E-books

Wikipedia Articles Indexes

Wikipedia for Schools - ENGLISH

Wikipedia for Schools - FRENCH

Wikipedia for Schools - SPANISH

Wikipedia for Schools - PORTUGUESE

Wikipedia 2016 - FRENCH

Wikipedia HTML - CATALAN

Wikipedia Picture of the Year 2006

Wikipedia Picture of the Year 2007

Wikipedia Picture of the Year 2008

Wikipedia Picture of the Year 2009

Wikipedia Picture of the Year 2010

Wikipedia Picture of the Year 2011