Programmation/Instructions
Une instruction est une opération de base du processeur ou d'un langage de programmation, une opération que le programmeur demande à la machine d'exécuter. Une instruction est une opération élémentaire, c'est à dire l'ordre le plus basique que peut comprendre un ordinateur. Fondamentalement, elle comporte deux éléments : l'action que le processeur va effectuer et les éléments sur laquelle l'action va être effectuée. Par exemple une instruction demandant l'addition des nombres a et b fera intervenir l'opérateur d'addition et les valeurs identifiées par les noms a et b.
Les instructions typiques
[modifier | modifier le wikicode]Les sections suivantes présentent les instructions typiques de la plupart des langages de programmation.
Déclaration
[modifier | modifier le wikicode]La déclaration permet à un compilateur ou interpréteur de connaitre à quoi correspond un identifiant. En général on déclare :
- les variables : en général un type précis est associé à l'identifiant. Exemple :
A:ENTIER
EN BASIC : Dim A as String * 5 [qui donnera affecte une zone de mémoire à la variable A pour une chaine de caractère comportant 5 caractères]
- les fonctions : l'identifiant est associé à une fonction retournant un résultat d'un type spécifié, et prenant comme arguments ceux qui sont spécifiés. Exemple :
FONCTION MAX(A:ENTIER, B:ENTIER) RETOURNE ENTIER
- les classes : en programmation objet, une classe définit un nouveau type de données auquel peut s'appliquer un certain nombre de fonctions (appelées méthodes). Exemple :
CLASSE VEHICULE
- d'autres entités qui dépendent du langage de programmation utilisé.
Certains langage n'ont pas besoin de déclarer les variables au préalable. D'autres ne définissent pas le type des variables. Dans ce cas là, le type est celui de la valeur à laquelle on l'affecte.
Affectation
[modifier | modifier le wikicode]L'instruction d'affectation permet de stocker le résultat d'une expression ou la valeur d'une constante dans une variable.
Exemples :
A ← 5 A ← A + 2
Expressions
[modifier | modifier le wikicode]Une expression contrairement à une instruction peut être affectée. Typiquement int a = <TEST> ? <VALEUR A> : <VALEUR B>;
est légal mais int a = if <TEST> <VALEUR A> else <VALEUR B>;
n'est pas légal car if
est une instruction et non une expression même si les deux construction seraient fondamentalement identiques autrement.
Arithmétique
[modifier | modifier le wikicode]Une expression arithmétique fait appel au cœur logique du processeur.
ADD A, B
Comparaison
[modifier | modifier le wikicode]Simplification de l'opération de soustraction. si on soustrait deux opérandes, selon que le résultat soit inférieur, égal ou supérieur à zéro, on peut connaitre la différence entre deux opérandes.
CMP A, B
Appel de fonction
[modifier | modifier le wikicode]CALL
Bloc d'instruction
[modifier | modifier le wikicode]Plusieurs instructions peuvent être regroupées en une seule en les encadrant par des accolades, ou par deux mots-clés du langage de programmation utilisé.
Exemple :
DEBUT TMP ← B B ← A A ← TMP FIN
Le bloc tout entier est alors considéré comme une seule instruction et peut être utilisé pour définir une fonction, ou l'utiliser avec une instruction de contrôle d'exécution.
Contrôle d'exécution
[modifier | modifier le wikicode]Les instructions contrôlant l'ordre d'exécution sont les suivantes :
- La condition : l'instruction qui suit n'est exécutée que si une condition est remplie. Exemple :
SI A < 0 ALORS A ← 0
- On peut ajouter une instruction à exécuter dans le cas contraire :
SINON A ← 1
- Une boucle permet de répéter un certain nombre de fois une même instruction. Exemple :
POUR I DE 1 À 10 FAIRE A ← A + I FIN_POUR
Ordre d'exécution des instructions
[modifier | modifier le wikicode]Sauf instruction contraire, l'ordre d'exécution des instructions est celui de la lecture du code source : de la gauche vers la droite, de haut en bas.
Exemple :
A ← 5 ; B ← A + 2 ; A ← 6 ; B ← A + 4 ;
L'ordre d'exécution des instructions de cet exemple est le suivant :
A ← 5 ;
La variable A contient la valeur 5.B ← A + 2 ;
La variable B contient la valeur 7 (5+2).A ← 6 ;
La variable A contient maintenant la valeur 6.B ← A + 4 ;
La variable B contient maintenant la valeur 10 (6+4).
Les instructions qui utilisent un ordre d'exécution différent sont des instructions de contrôle d'exécution.