Skip to main content

Qu'est-ce qu'une table de branche?

Une table de branche est une méthode pour transférer efficacement le contrôle du programme d'une partie d'un programme à un autre, ou à un deuxième programme qui a été chargé dynamiquement, en envoyant une branche d'instructions ou en implémentant une instruction Switch.Cette méthode, parfois appelée table de saut, repose sur un ensemble de circonstances ou de conditions pour effectuer un saut pour implémenter une procédure en fonction d'une instruction Switch d'un compilateur C +.Certains des principaux avantages des tables de branche sont leur structure de code compacte et une réduction de la nécessité de tester les codes de retour individuellement lors de la détermination du flux du programme.

Dans les années 1980, les tables de branche ont été largement utilisées dans la programmation du langage d'assemblage.Ils sont toujours utilisés dans la programmation d'assemblage pour les systèmes intégrés et le développement des systèmes d'exploitation.Depuis les années 1990, les langages de programmation du compilateur ont également utilisé le fonctionnement de la table de branche.

Les tables de branche consistent en une liste d'instructions inconditionnelles qui, étant donné l'entrée, se ramifier vers d'autres destinations.La plupart des matériels informatiques peuvent exécuter ces instructions efficacement.Parfois, le décalage mdash;Essentiellement, la distance à la destination mdash;Peut être ajouté à un registre de compteur de programme qui peut ensuite pointer vers des ensembles d'instructions de branche ou sauter entre les ensembles d'instructions de branche.Tout ce qui est nécessaire pour implémenter une table de branche est la validation du code d'entrée, la transformation des données en un décalage et la multiplication des données en une longueur d'instructions donnée.

La programmation intégrée utiliseou des pointeurs arris.Les systèmes de contrôle intégrés ont besoin de ces économies de mémoire, et bien qu'il puisse coûter une petite quantité de performances pendant l'accès à la table de branche, tout appel de fonction de méthode virtuelle coûterait la même quantité de performances pour un fonctionnement stable.L'accès au processeur limité et les économies de mémoire dans les systèmes embarqués ont besoin d'une table de branche pour les ensembles de fonctions statiques.

Les langages de programmation du compilateur génèrent leurs propres tables de branche en cas d'utilisation des clés de recherche sur l'optimisation des compilateurs.Certains programmeurs choisissent d'aider manuellement le compilateur avec la génération de table de branche contexée en donnant au compilateur des paramètres conditionnels en deux étapes à partir desquels rechercher les clés.Au cours des premières années de compilation de programmes, la mise en œuvre de la table de branche était autrefois les commandes GOTO dans les langues du compilateur FORTRAN.Les tables de branche sont toujours utilisées pour mettre en œuvre des changements dans le flux de programme dans les langages du compilateur ou pour être un point de départ pour les séquences d'instructions répétées.