O que é uma tabela de ramificação?
Uma tabela de ramificação é um método para transferir com eficiência o controle do programa de uma parte de um programa para outra, ou para um segundo programa que foi carregado dinamicamente, enviando uma filial de instruções ou implementando uma instrução Switch. Esse método, às vezes chamado de tabela de salto, conta com um conjunto de circunstâncias ou condições para executar um salto para implementar um procedimento de acordo com uma declaração de interruptor de um compilador C+. Algumas das principais vantagens das tabelas de ramificação são sua estrutura de código compacto e uma redução na necessidade de testar os códigos de retorno individualmente ao determinar o fluxo do programa.
Nos anos 80, as tabelas de ramificação foram amplamente utilizadas na programação da linguagem de montagem. Eles ainda são usados na programação de montagem para sistemas incorporados e desenvolvimento de sistemas operacionais. Desde a década de 1990, as linguagens de programação do compilador também fizeram uso do funcionamento da tabela de filiais.
As tabelas de ramificação consistem em uma lista de instruções incondicionais que, com a entrada, se ramificam para outros destinos.A maioria dos hardware do computador pode executar essas instruções com eficiência. Às vezes, o deslocamento - essencialmente, a distância do destino - pode ser adicionada a um contador de programas que pode apontar para conjuntos de instruções de ramificação ou pular entre conjuntos de instruções de ramificação. Tudo o que é necessário para implementar uma tabela de ramificação é a validação do código de entrada, transformando os dados em um deslocamento e multiplicando os dados em um determinado comprimento de instrução.
A programação incorporada usa tabelas de ramificação, pois são mais eficientes em memória do que o uso de código da máquina ou indicadores de matriz. Os sistemas de controle incorporados precisam de economia de memória e, embora possa custar uma pequena quantidade de desempenho durante o acesso à tabela de ramificação, qualquer chamada de função do método virtual custaria a mesma quantidade de desempenho para o funcionamento estável. O acesso limitado da CPU e a economia de memória em sistemas incorporados precisam de uma tabela de ramificação paraR Conjuntos de funções estáticas.
As linguagens de programação do compilador geram suas próprias tabelas de ramificação quando necessário pelo uso das teclas de pesquisa para otimizar compiladores. Alguns programadores optam por ajudar manualmente o compilador na geração de tabela de ramificação contextada, fornecendo ao compilador parâmetros condicionais de duas etapas a partir das quais as chaves de pesquisa. Nos anos anteriores de compilação de programas, a implementação da tabela de ramificação costumava ser os comandos "Goto" nos idiomas FORTRAN COMPILER. As tabelas de ramificação ainda são usadas para implementar mudanças no fluxo do programa em linguagens do compilador ou para ser um ponto de partida para sequências de instruções repetidas.