Intéressé par des cours d'informatique en ligne ?
Visitez mon nouveau site https://www.yesik.it !

Cet article est une ébauche.

La programmation impérative est un paradigme de programmation dans lequel on considère un programme comme un suite d'instructions qui modifient l'état du système sur lequel elles sont exécutées.

La programmation impérative est un paradigme de programmation dans lequel l'exécution d'un programme repose sur l'évaluation successive d'instructions qui modifient son état.

De nombreux langages informatiques reposent sur ce modèle, principalement pour deux raisons:

Programme statique .vs. programme dynamique

Dans l'immense majorité des langages impératifs modernes (c'est à dire ceux qui ne s'auto-modifient pas), la suite des instructions fait partie du programme "statique" visible dans le code source. Par contre, êtant donné que l'état du programme évolue pendant l'exécution, l'aspect dynamique de celui-ci ne peut pas être visible.

L'état courant du programme est maintenu en mémoire vive ou au travers de périphériques d'entré-sortie. Si dans les langages de bas niveau comme l'assembleur on modifie l'état du programme en accédant directement aux cellules mémoire par leur adresse, les langages de plus haut niveau introduisent le concept de variable pour faciliter l'accès aux données. De la même manière, ces langages introduisent aussi la notion de type qui permet de définir la taille et les opérations applicables sur ces variables.

Etant donné que l'état du programme de neut pas être déterminé par l'analyse statique du code source, il est parfois difficile de comprendre l'exécution d'un programme impératif. Cette complexité est à l'origine le la difficulté de résolution de nombreux bugs. Ou de l'existance de bugs "intermiteant": le programme fonctionne dans 99% des cas, et il reste 1% ou "ça ne marche pas". Ces bugs fantômes sont les lus difficile à corriger. Et saons causés par le fait que le programme se retrouve, dans certaines conditions exceptionnelles, dans u nétat qui fait apparitre une anomalie de fonctionnement.

On considère donc qu'il est plus sage de rendre les modification de l'état du programme aussi locales que possibles, de manière a ce que l'examen des sources permettent de comprendre le comportement dynamique du programme. On se méfiera particulièrement des variable globales.

Les langages modernes proposent généralement plusieurs portées différentes pour les variables. La portée d'une variable détermine sa visibilité et sa durée de vie.

Ainsi, les langages impératifs orientés objets proposent au moins:

Un règle communément admise est de limiter au maximum la portée des variables. Ainsi, on privilégiera par ordre de préférence les variables locales, puis les variables d'instance et en dernier recours les variables globales.


Si au niveau le plus bas, la modification de l'état du programme consiste à odifier les données contenues en mémoire à partir de leur adresse, les langages évolutés

de nombreuses actions de notre vie quotidienne sont exprimées sous la forme d'une suite d'étape à réaliser pour atteindre un but. Ainsi, une recette de cuisine, un tutoriel ou encore  Le monde physique qui stockant d'un certaine manière l'état du programme lors de sa réalisation.

En programmation impérative, on considère un programme comme une suite d'instructions qui modifient l'état de ce programme.

L'exécution du programme repose donc sur deux ???trucs??? distincs: la suite des instructions à exécuter et l'état courant du programme.

Les langages impératifs se caractérisent par le fait que c'est le programmeur qui indique l'ordre dans lequel les instruction d'un programme doivent être réalisées. Par ailleurs, les instructions peuvent avoir des effets de bord, c'est à dire modifier l'état global du programme de sorte que l'ordre des instructions dans le programme est important et que deux appels consécutifs à la même expression produise des résultats différents.

Ordinateur, mémoire, assembleur

Variables sans les langages évolués