Quelques définitions pour la programmation¶
- Programmer
- Programmer, c’est exprimer, dans un langage formel à destination des ordinateurs, des algorithmes. [1]
Qu’est-ce qu’un algorithme ?¶
La piste étymologique¶
- algorithme
- « Du nom du mathématicien perse Al-Khwarizmi déformé d’après le grec ancien ἀριθμός, arithmós (« nombre ») » [2]
Note
L’Étymologie nous apprend… qu’il n’y a pas grand chose à tirer de l’étymologie du terme « algorithme ».
Définitions¶
- algorithme
- « Un algorithme est une suite finie et non ambiguë d’opérations ou d’instructions permettant de résoudre un problème ou d’obtenir un résultat. » [2]
- algorithme
- « Un algorithme, c’est tout simplement une façon de décrire dans ses moindres détails comment procéder pour faire quelque chose. Il se trouve que beaucoup d’actions mécaniques, toutes probablement, se prêtent bien à une telle décortication. » [3]
Exemples¶
(dispensé à l’oral lors du cours)
Qu’est-ce qu’un langage formel ?¶
- langage formel
- « Un langage avec des règles explicites pour sa syntaxe et sa sémantique. On peut par exemple citer les langages de programmation et aussi logiques comme pour le calcul fonctionnel. Ainsi, les langages formels contrastent avec les langages naturels comme l’anglais dont les règles, évoluant comme elle le font avec l’usage, échouent aussi bien à être une définition complète ou précise de la syntaxe, et encore davantage de la sémantique du langage. » [#2]_
quelques exemples [5]¶
- la notation musicale
- le langage algébrique
- grammaire de précision de précision de correction pour les lunettes
intérêt (dans le cadre de la programmation)¶
- compréhensible par la machine
- plus compréhensible pour l’humain que le langage machine
- élimine toute ambiguïté (au moins pour la machine qui l’interprète !)
[1] | Définition notamment inspirée du passage suivant : « Nous connaissons des algorithmes depuis des millénaires, mais cela fait à peine quelques décennies que nous écrivons des programmes. Une grand différence entre l’époque d’Euclide et d’Érathostène et la nôtre est que, depuis le milieu du XXè siècle, nous exprimons les algorithmes que nous concevons dans des langages formels : les langages de programmation. » Dowek, G. (2011). Les principes des langages de programmation, p. 5. Palaiseau: Les Éd. de l’École polytechnique. |
[2] | (1, 2) https://fr.wikipedia.org/wiki/Algorithme |
[3] | Philippe Flajolet, Étienne Parizot, « Qu’est ce qu’un algorithme ? », interstices.fr, 2004. |
[4] | Traduction libre de : « A language with explicit and precise rules for its syntax and semantics. Examples include programming languages and also logics such as *predicate calculus. Thus formal languages contrast with natural languages such as English whose rules, evolving as they do with use, fall short of being either a complete or a precise definition of the syntax, much less the semantics, of the language. » Butterfield, A, Gerard E. Ngondi, and Anne Kerr. A dictionary of computer science. Oxford: Oxford University Press, 2016. |
[5] | liste d’exemple tirée de : Dowek, G. (2011). Les principes des langages de programmation, p. 5. Palaiseau : Les Éd. de l’École polytechnique. |