Bloc de base
En informatique, un bloc de base[1] est une portion du code source d'un programme caractérisé par certaines propriétés utiles qui le rendent facile à analyser. Les compilateurs décomposent la plupart du temps les programmes en leurs blocs de base dans une première étape du processus d'analyse.
Les blocs de base forment les nœuds d'un graphe de flot de contrôle.
Définition
Le code d'un bloc de base comporte :
- un point d'entrée, ce qui signifie qu'il ne contient pas de code qui soit la cible d'une instruction de saut où que ce soit dans le programme ;
- un point de sortie, ce qui signifie que seule la dernière instruction peut faire en sorte que le programme commence à exécuter du code dans un autre bloc de base.
Par conséquent, à chaque fois que la première instruction d'un bloc de base est exécutée, les autres instructions sont exécutées exactement une fois et dans l'ordre.
De façon plus formelle, une séquence d'instructions forme un bloc de base lorsque:
- chaque instruction à une position donnée domine (s'exécute avant) toutes les instructions à des positions ultérieures ;
- aucune autre instruction ne s'exécute entre deux instructions de la séquence.
Cette définition est quelque peu plus générale que la définition intuitive. Par exemple, elle permet les sauts non conditionnels vers des étiquettes qui ne sont pas cibles d'autres sauts. Cette définition traduit les propriétés qui rendent les blocs de base faciles à utiliser lorsque l'on construit un algorithme.
Les blocs vers lesquels le contrôle peut être transféré après avoir atteint la fin du bloc sont appelés les successeurs du bloc. Les blocs d'où on peut venir avant d'entrer dans un bloc de base sont appelés ses prédécesseurs. On peut sauter au début d'un bloc de base depuis plusieurs endroits.
Références
- Génération de code, département d'informatique et de génie logiciel, université de Laval au Canada
Voir également
Source
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Basis block » (voir la liste des auteurs).
Articles connexes
Liens externes
- Portail de l'informatique théorique