Co to jest tabela oddziałów?
Tabela rozgałęzień to metoda skutecznego przenoszenia kontroli programu z jednej części programu do innej lub do drugiego programu, który został załadowany dynamicznie, poprzez wysłanie gałęzi instrukcji lub implementację instrukcji przełączania. Ta metoda, czasami nazywana tabelą skoku, polega na zestawie okoliczności lub warunków do wykonania skoku w celu zaimplementowania procedury zgodnie z instrukcją switch z kompilatora C +. Niektóre z głównych zalet tabel rozgałęzionych to zwarta struktura kodu i ograniczenie konieczności indywidualnego testowania kodów powrotu podczas określania przebiegu programu.
W latach 80. tabele branżowe były szeroko stosowane w programowaniu w asemblerze. Nadal są używane w programowaniu asemblera do programowania systemów wbudowanych i systemów operacyjnych. Od lat 90. języki programowania kompilatora korzystały również z funkcji tabel rozgałęzień.
Tabele rozgałęzień składają się z listy bezwarunkowych instrukcji, które przy danych wejściowych rozgałęziają się do innych miejsc docelowych. Większość sprzętu komputerowego może skutecznie wykonywać te instrukcje. Czasami przesunięcie - zasadniczo odległość do miejsca docelowego - można dodać do rejestru licznika programu, który może następnie wskazywać zestawy instrukcji rozgałęzienia lub przeskakiwać między zestawami instrukcji rozgałęzienia. Wszystko, co jest konieczne do wdrożenia tabeli rozgałęzień, to sprawdzanie poprawności kodu wejściowego, przekształcanie danych w przesunięcie i mnożenie danych do danej długości instrukcji.
Programowanie wbudowane korzysta z tabel rozgałęzień, ponieważ są bardziej wydajne pod względem pamięci niż przy użyciu kodu maszynowego lub wskaźników tablicowych. Wbudowane systemy sterowania wymagają oszczędności pamięci i chociaż może to kosztować niewielką wydajność podczas dostępu do tabeli rozgałęzień, każde wywołanie funkcji metody wirtualnej kosztowałoby taką samą wydajność dla stabilnego funkcjonowania. Ograniczony dostęp do procesora i oszczędność pamięci w systemach wbudowanych wymagają tabeli rozgałęzień dla statycznych zestawów funkcji.
Języki programowania kompilatora generują własne tabele gałęzi, gdy jest to potrzebne, przy użyciu kluczy wyszukiwania w optymalizacji kompilatorów. Niektórzy programiści decydują się na ręczne wspomaganie kompilatora w generowaniu kontekstowej tabeli rozgałęzień, podając kompilatorowi dwustopniowe parametry warunkowe, z których można wyszukiwać klucze. We wcześniejszych latach kompilowania programów implementacją tabeli oddziałów były komendy „GoTo” w językach kompilatora Fortran. Tabele rozgałęzień są nadal używane do implementacji zmian w przebiegu programu w językach kompilatora lub jako punkt wyjścia do powtarzania sekwencji instrukcji.