Un langage de programmation est un langage qui permet d'exprimer des algorithmes dans un langage formel.
Définition : langage formel
Un langage formel est sous ensemble du monoïde libre (ensemble muni d'une loi de composition interne associative et d'un élément neutre) sur un alphabet fini $\mathcal{L}$. C'est à dire un sous ensemble (noté $\mathcal{L}^*$) de l'ensemble des mots finis qui appartiennent à $\mathcal{L}$ dont on connait une définition mathématique.
Par exemple :
Remarque :
Tous les langages formels ne sont pas forcement des langages de programmation même quand il s'agit d'un langage lié à l'ordinateur.
Il existe plus de $2\,000$ langages de programmation, ils sont construits sur des principes communs comme par exemple: affectation, boucle, condition, passage par référence, ...
La plupart des langages de programmation proposent, parmis d'autres, cinq constructions fondamentales
Pour chaque construction il s'agit de décrire :
L'affectation permet de former une instruction avec une variable $x$ et une expression $t$, en python cette instruction s'écrit : $x=t$
La déclaration de variable n'existe pas vraiment en Python, déclarer une variable c'est associer le nom de la variable à une case mémoire de l'ordinateur. La déclaration de variable est une construction qui permet de former une instruction à partir d'un type, d'une variable, d'une expression et d'une instruction. Cette instruction s'écrit $$\text{\{ int } x = t\text{ ; } p \text{ \}}$$
La séquence est une construction qui permet d'exécuter deux ou plusieurs instructions à la suite : $p_1\, p_2\, \dots\, p_n$. Par exemple
x = 2 ; y = 3
Remarque : le point virgule appartient à la première instruction (affectation)
Le test est une construction constituée d'une expression booléenne $b$ et de deux instructions $p_1$ et $p_2$. En Python on écrira :
if x < 0:
x = -x + 1
else:
x = x + 1
La boucle est une construction constituée d'une expression booléenne $b$ et d'une instruction $p$
while x<1000:
x=x**2
Notion de programme qui ne se termine pas
import time
print time.strftime("Version du "+'%d/%m/%y %H:%M',time.localtime())
Christophe Casseau mail : isncaju@gmail.com