Che cos'è una tabella di diramazione?
Una tabella di diramazione è un metodo per trasferire in modo efficiente il controllo del programma da una parte di un programma a un'altra o a un secondo programma che è stato caricato in modo dinamico, inviando un ramo di istruzioni o implementando un'istruzione switch. Questo metodo, a volte chiamato tabella di salto, si basa su una serie di circostanze o condizioni per eseguire un salto per implementare una procedura secondo un'istruzione switch da un compilatore C +. Alcuni dei principali vantaggi delle tabelle delle filiali sono la struttura compatta dei codici e la riduzione della necessità di testare i codici di ritorno singolarmente quando si determina il flusso del programma.
Negli anni '80, le tabelle delle filiali sono state ampiamente utilizzate nella programmazione del linguaggio assembly. Sono ancora utilizzati nella programmazione di assiemi per lo sviluppo di sistemi integrati e sistemi operativi. Dagli anni '90, anche i linguaggi di programmazione del compilatore si sono avvalsi del funzionamento della tabella delle filiali.
Le tabelle di diramazione sono costituite da un elenco di istruzioni incondizionate che, dato l'input, si diramano verso altre destinazioni. La maggior parte dell'hardware del computer può eseguire queste istruzioni in modo efficiente. A volte, l'offset - essenzialmente la distanza dalla destinazione - può essere aggiunto a un registro del contatore di programmi che può quindi puntare a insiemi di istruzioni di diramazione o saltare tra insiemi di istruzioni di diramazione. Tutto ciò che è necessario per implementare una tabella di diramazione è la convalida del codice di input, la trasformazione dei dati in un offset e la moltiplicazione dei dati per una determinata lunghezza di istruzione.
La programmazione integrata utilizza tabelle di diramazione poiché sono più efficienti in termini di memoria rispetto all'utilizzo di codice macchina o puntatori array. I sistemi di controllo integrati necessitano di un risparmio di memoria e, sebbene possa costare una piccola quantità di prestazioni durante l'accesso alla tabella delle filiali, qualsiasi chiamata di funzione di metodo virtuale costerebbe la stessa quantità di prestazioni per un funzionamento stabile. L'accesso limitato alla CPU e il risparmio di memoria nei sistemi embedded richiedono una tabella di derivazione per set di funzioni statiche.
I linguaggi di programmazione del compilatore generano le proprie tabelle di diramazione quando necessario utilizzando le chiavi di ricerca per ottimizzare i compilatori. Alcuni programmatori scelgono di assistere manualmente il compilatore nella generazione di tabelle di diramazione contestuali fornendo al compilatore parametri condizionali in due fasi da cui cercare le chiavi. Negli anni precedenti dei programmi di compilazione, l'implementazione della tabella delle filiali era in passato il comando "Vai a" nei linguaggi del compilatore Fortran. Le tabelle di diramazione vengono ancora utilizzate per implementare le modifiche nel flusso del programma nei linguaggi del compilatore o come punto di partenza per sequenze di istruzioni ripetute.