Présentation
Auteur(s)
-
Bernard ROBINET : Professeur des Universités - Directeur scientifique de l’École nationale supérieure des télécommunications
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleINTRODUCTION
Si, dès l’Antiquité, Euclide avait décrit la suite d’opérations permettant de calculer le plus grand commun diviseur de deux entiers, il a fallu attendre le neuvième siècle de notre ère pour qu’un mathématicien arabe, Al Kwarismi (ou Al-Khawarizmi) explicite l’idée de description d’un procédé de calcul par une liste d’actions enchaînées à faire dans l’ordre où elles sont présentées : la notion d’algorithme prend corps, les techniques calculatoires progressent et, franchissant allègrement plusieurs siècles, on arrive à l’époque où l’ordinateur banalise, en quelque sorte, ce type d’artefact qu’est l’algorithme.
En effet, programmer un ordinateur, c’est construire un algorithme dont l’exécution par la machine conduit au résultat recherché ou escompté ; programmer, c’est donc aussi rédiger dans un langage traduisible – par interprétation ou par compilation, peu importe – sur un ordinateur une liste d’actions enchaînées.
Certains différencient avec force les deux activités que sont la création d’algorithmes et leurs rédactions dans des langages de programmation. Pendant longtemps, quelques-uns ont même restreint la programmation à une espèce de travail de codification d’algorithmes dans ces mêmes langages. Ce point de vue n’est pas celui adopté ici : décrire une liste ordonnée d’actions – c’est-à-dire un algorithme – nécessite l’emploi d’un certain langage. Que celui-ci soit le langage mathématique usuel ou toute espèce de sabir ne change rien à l’affaire : il doit être traduit et peut être compris par celui qui l’utilise, que ce soit pour exécution, pour transmission et appropriation. De plus, le langage mathématique usuel pouvant être rendu non ambigu, syntaxiquement et surtout sémantiquement, et, par là, être traduisible sur un ordinateur, on ne voit plus guère de différence avec un langage de programmation.
Aussi, dans la suite, il ne sera pas distingué entre algorithme et programme, et des langages ad hoc seront utilisés pour décrire l’activité de programmation.
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
1. De l’organigramme à la programmation structurée
Si, au milieu de ce siècle, les langages de programmation n’étaient que ceux propres aux ordinateurs, leur caractère éminemment analytique rendait impossible la réalisation concomitante de l’algorithme et du programme. C’est l’utilisation d’un intermédiaire appelé organigramme qui permit de s’affranchir temporairement de ce caractère fort peu synthétique.
Cette situation, purement conjoncturelle, conduisit certainement à la dichotomie algorithme-programme évoquée dans l’introduction.
-
Par seul intérêt historique, nous présentons deux organigrammes.
-
L’un est une solution pour la recherche d’une valeur donnée dans une suite représentée par un tableau non vide à une dimension de longueur connue (figure 1) ; ce problème, fort simple, conduit à un organigramme simple.
Mais la complexité, parfois toute relative, des problèmes et surtout des solutions trouvées induit souvent des organigrammes « chevelus » où les lignes fléchées se croisent, parfois s’entrecroisent. Ce développement un peu anarchique ne facilite pas la lecture et donc la compréhension ; il engendre alors erreurs, corrections et ainsi complexification. Il a pourtant connu de beaux jours, faute de mieux.
-
L’autre organigramme (figure 2) représente un traitement possible pour l’algorithme d’Euclide où la fonction reste (Z, T) donne le reste de la division entière de Z par T.
-
-
Il faut mettre en avant le travail de C. Böhm et G. Jiacopini qui, dès 1964, permet de dépasser ce médiocre outil qu’est l’organigramme en proposant de programmer à partir d’un nombre réduit d’outils de base assemblés suivant des règles simples : on tend alors vers une certaine « linéarité » de l’écriture, c’est-à-dire une expression...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
De l’organigramme à la programmation structurée
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive