Vers les années 70, la programmation des ordinateurs fut reconnue comme une discipline dont la maîtrise était fondamentale et indispensable au succès de bien des projets scientifiques et techniques et qui était susceptible d'être traitée et présentée scientifiquement. Elle passa du stade de l'artisanat à celui de l'enseignement académique. Les contributions essentielles de Dijkstra et Hoare ne sont pas étrangères à cette évolution.
Ces deux articles concentrent leur attention principalement sur la structure des algorithmes représentés par les textes des programmes. Cette nouvelle méthodologie de la programmation a clairement montré que l'aspect de structuration, d'organisation des données lui était intimement lié.
Les programmes sont la formulation concrète d'algorithmes abstraits basés sur une représentation et une structure particulière des données. A ce niveau il faut mentionner la contribution importante de Hoare : "Notes on Data Structuring".
Il a montré qu'il est impossible de structurer correctement un ensemble de données si l'on n'a pas la connaissance de l'algorithme qui va s'appliquer sur ces données et que, réciproquement, le choix de l'algorithme peut dépendre fortement de la structure des données. En conclusion, développement de programmes (d'algorithmes) et structuration des données sont intimement liés.
Dans les chapitres qui suivent, il y aura donc des exemples d'algorithmes
illustrant la construction et l'utilisation des structures de données
décrites. Dans l'espoir de rendre ces exemples plus lisibles, les
symboles utilisés sont formés de plusieurs mots accolés
dont les initiales sont en majuscule (par exemple
SommetDeDepart
). De plus, tout ce qui est programme ou extrait
de programme utilise une police de caractères à chasse fixe
et répond aux conventions d'indentation suivantes :
begin
est placé en fin de ligne et les instructions qui
suivent sont indentées de deux caractères, y compris le mot
réservé end
qui termine l'instruction composée.
Par exemple :
if UneExpressionBooléenne then begin { suite d'instructions } end else begin { suite d'instructions } end; { if }
if UneExpressionBooléenne then { une instruction très longue }; while UneExpressionBooléenne do { une instruction très longue };
ou justifiée à droite si c'est le complément de la première ligne :
UneVariableDuProgramme := UneTropLongueExpression;
Site Hosting: Bronco