¿Qué es una mesa de rama?
Una tabla de rama es un método para transferir eficientemente el control del programa de una parte de un programa a otro, o a un segundo programa que se ha cargado dinámicamente, enviando una rama de instrucciones o implementando una instrucción Switch. Este método, a veces llamado mesa 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 C+. Algunas de las principales ventajas de las tablas de rama son su estructura de código compacto 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 de rama se usaron ampliamente en la programación de lenguaje de ensamblaje. Todavía se usan en la programación de ensamblaje 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 ramas.
Las tablas de rama consisten en una lista de instrucciones incondicionales que, dada la entrada, se ramifican a otros destinos.La mayoría de los hardware de la computadora pueden 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 es necesario para implementar una tabla de rama es la validación del código de entrada, transformar los datos en un desplazamiento y multiplicar los datos a una longitud de instrucción dada.
La programación integrada utiliza tablas de rama, ya que son más eficientes en la memoria que usar código de máquina o punteros organizados. 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 sucursales, cualquier llamada de función de método virtual costaría la misma cantidad de rendimiento para el funcionamiento estable. El acceso limitado a la CPU y los ahorros de memoria en sistemas integrados necesitan una tabla de ramas paraR Conjuntos de funciones estáticas.
Los lenguajes de programación del compilador generan sus propias tablas de rama cuando sea 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 la tabla de ramas contextadas dando al compilador parámetros condicionales de dos pasos desde los cuales buscar claves. En los primeros años de compilación de programas, la implementación de la tabla de sucursales solía ser los comandos "GOTO" en los idiomas del compilador Fortran. Las tablas de rama todavía se usan para implementar cambios en el flujo del programa en los idiomas del compilador o para ser un punto de partida para secuencias de instrucciones repetidas.