Skip to main content

¿Qué es una tabla de ramificación?

Una tabla de bifurcación es un método para transferir eficientemente el control del programa de una parte de un programa a otra, oa un segundo programa que se ha cargado dinámicamente, enviando una bifurcación de instrucciones o implementando una instrucción de cambio. Este método, a veces llamado tabla de salto, se basa en un conjunto de circunstancias o condiciones para realizar un salto para implementar un procedimiento de acuerdo con una declaración de cambio de un compilador de C +. Algunas de las principales ventajas de las tablas derivadas son su estructura de código compacta y una reducción en la necesidad de probar los códigos de retorno individualmente al determinar el flujo del programa.

En la década de 1980, las tablas derivadas se usaban ampliamente en la programación en lenguaje ensamblador. Todavía se utilizan en la programación de ensamblajes para sistemas integrados y desarrollo de sistemas operativos. Desde la década de 1990, los lenguajes de programación del compilador también han utilizado el funcionamiento de la tabla de ramificación.

Las tablas de ramificación consisten en una lista de instrucciones incondicionales que, dada la entrada, se ramifican a otros destinos. La mayoría del hardware de la computadora puede ejecutar estas instrucciones de manera eficiente. A veces, el desplazamiento, esencialmente, la distancia al destino, se puede agregar a un registro de contador de programa que luego puede apuntar a conjuntos de instrucciones de rama o saltar entre conjuntos de instrucciones de rama. Todo lo que se necesita para implementar una tabla de bifurcación es la validación del código de entrada, la transformación de los datos en un desplazamiento y la multiplicación de los datos a una longitud de instrucción dada.

La programación integrada utiliza tablas de bifurcación, ya que son más eficientes en memoria que el código de máquina o punteros ordenados. Los sistemas de control integrados necesitan ese ahorro de memoria, y aunque puede costar una pequeña cantidad de rendimiento durante el acceso a la tabla de bifurcación, cualquier llamada a la función de método virtual costaría la misma cantidad de rendimiento para un funcionamiento estable. El acceso limitado a la CPU y el ahorro de memoria en los sistemas integrados necesitan una tabla de bifurcación para los conjuntos de funciones estáticas.

Los lenguajes de programación del compilador generan sus propias tablas de bifurcación cuando es necesario mediante el uso de claves de búsqueda para optimizar los compiladores. Algunos programadores eligen ayudar manualmente al compilador con la generación de tablas de ramas contextualizadas al proporcionarle al compilador parámetros condicionales de dos pasos para buscar claves. En los primeros años de compilación de programas, la implementación de la tabla de bifurcación solía ser los comandos "GoTo" en los lenguajes de compilación de Fortran. Las tablas de bifurcación todavía se utilizan para implementar cambios en el flujo del programa en los lenguajes del compilador o como punto de partida para secuencias de instrucciones repetidas.