Langages de programmation
Dans le cadre de ce cours, nous allons programmer à l'aide du langage Python. Ce document contient quelques informations générales sur les langages de programmation. Il n'est pas nécessaire de les apprendre, mais certaines notions sont intéressantes à connaitre. Elles seront rappelées plus tard dans le cours.
a noter que ce document contient beaucoup de vulgarisation, et donc que de nombreux concepts sont imagés et inexacts.
Syntaxe, sémantique
Les langages de programmation sont des conventions qui permettent d'exprimer un programme. Ils fixent deux grands concepts :
- La syntaxe, qui est la structure textuelle que doit avoir un programme : quels types de mots à quel place, quelles suites de mots sont autorisées ...
- La sémantique, qui définit le sens que prends un texte qui respecte la syntaxe.
Paradigmes
Chaque langage de programmation a sa propre philosophie, sur la manière d'exprimer un programme, et donc une syntaxe et une sémantique unique.
Ces philosophies sont appelée paradigmes de programmation, et sont classifiées en familles.
Le langage que nous allons utiliser, Python, appartient à la famille des langages impératif. Celà veut dire qu'il décrit un programme comme une suite d'actions (les instructions) qui modifient les valeurs en mémoire de la machine (l'état). Ecrire un programme impératif, c'est un peu comme écrire une recette de cuisine. (Sauf que ça a moins de goût.)
Compilation, interprétation
Pour exécuter (lancer) un programme qui est sous forme de code source, il y a en gros deux solutions :
-
La première, c'est de compiler le programme : on le donne à un programme, un compilateur, qui traduit le programme dans un langage compréhensible par la machine. On a alors un nouveau fichier qui peut être exécuté directement sur le processeur.
-
La seconde, c'est d'interpréter le programme : on le donne à un programme, un interpreteur (ou interprète), qui va lire le programme et simuler son execution sur un processeur. C'est en général plus simple pour le programmeur que la compilation.
Ces deux solutions ont leurs avantages et leurs inconvénients, et souvent, un langage de programmation est conçus avec l'un des deux modes à l'esprit. On parlera alors de langage interprété, ou de langage compilé. Ces deux expressions sont des abus de langage, étant donné qu'un langage de programmation est juste une description du comportement d'un programme, et n'est strictement parlant lié à aucun des deux modes.
Le langage Python est un langage interprété, ce qui rends sa prise en main très simple.
A noter qu'en réalité, souvent, il n'y a pas uniquement compilation et interprétation, mais un mix des deux.
Pour plus de simplicite, la suite de ce cours, je décrirais souvent les actions faites par les programmes que nous écrirons comme si elles étaient exécutées directement par l'ordinateur, et non pas par l'interpréteur Python.
De la même manière, je parlerai souvent de l'interprèteur, mais ces remarques s'appliqueront aussi aux compilateurs la plupart du temps.