Langages et programmation¶

Qu'est ce qu'un langage de programmation ?¶

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 :

  • {b, bb, bbb, bbbb, ...} est l'ensemble non vide de tous les mots de longueur non nulle constitués uniquement de la lettre b
  • {<, 90a, 36U7b, ...} est l'ensemble non vide de tous les mots constitués d'un nombre impair de caractères appartenant à l'alphabet
  • La notation musical est un langage formel qui existait bien avant les ordinateurs

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.

  • \mathcal{L}^ commande qui à permis d'écrire $\mathcal{L}^$ --> langage $\LaTeX$

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, ...

Le noyau impératif¶

La plupart des langages de programmation proposent, parmis d'autres, cinq constructions fondamentales

  • l'affectation
  • la déclaration de variable
  • la séquence
  • le test
  • la boucle

Pour chaque construction il s'agit de décrire :

  • sa syntaxe : la manière dont l'instruction correspondante s’écrit
  • sa sémantique : la manière dont elle s'exécute

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

In [3]:
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 :

$$\text{if }b: \, p_1\text{ else : }p_2$$
In [ ]:
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$

$$\text{while }b \text{ : } p$$
In [7]:
while x<1000: 
    x=x**2

Notion de programme qui ne se termine pas

In [8]:
import time
print time.strftime("Version du "+'%d/%m/%y %H:%M',time.localtime())
Version du 03/09/17 16:02

Christophe Casseau mail : isncaju@gmail.com