Hvad er en filialtabel?
En grenstabel er en metode til effektivt at overføre programstyring fra en del af et program til et andet eller til et andet program, der er indlæst dynamisk, ved at sende en gren af instruktioner eller ved at implementere en switch-erklæring. Denne metode, som undertiden kaldes et hoppebord, er afhængig af et sæt omstændigheder eller betingelser for at udføre et spring for at implementere en procedure i henhold til en switch-erklæring fra en C + -kompiler. Nogle af de vigtigste fordele ved grenstabeller er deres kompakte kodestruktur og en reduktion i behovet for at teste returkoder individuelt ved bestemmelse af programstrøm.
I 1980'erne blev filialtabeller brugt meget til programmering af samlingssprog. De bruges stadig i samlingsprogrammering til integrerede systemer og udvikling af operativsystemer. Siden 1990'erne har compiler-programmeringssprog også gjort brug af filialtabelfunktion.
Filialtabeller består af en liste med ubetingede instruktioner, der, givet input, forgrener sig til andre destinationer. De fleste computerhardware kan udføre disse instruktioner effektivt. Til tider kan forskydningen - i det væsentlige afstanden til destinationen - føjes til et programtælleregister, der derefter kan pege på sæt af greninstruktioner eller hoppe blandt sæt af filialinstruktioner. Alt, hvad der er nødvendigt for at implementere en grenstabel, er validering af inputkoden, omdannelse af dataene til en forskydning og multiplicering af dataene til en given instruktionslængde.
Indbygget programmering bruger grenstabeller, da de er mere hukommelseseffektive end at bruge maskinkode eller arrayed pointers. Integrerede kontrolsystemer har brug for besparelser i hukommelsen, og skønt det kan koste en lille ydelse under adgangen til grenstabellen, ville ethvert virtuelt metodefunktionsopkald koste den samme mængde ydelse til stabil funktion. Den begrænsede CPU-adgang og hukommelsesbesparelser i indlejrede systemer har brug for en grenstabel til statiske funktionssæt.
Compiler-programmeringssprog genererer deres egne grenstabeller efter behov ved hjælp af søgetaster på optimering af compilere. Nogle programmerere vælger at manuelt hjælpe kompilatoren med generering af sammenhængende grenstabel ved at give kompilatoren to-trins betingede parametre, hvorfra man skal søge nøgler. I de tidligere år med udarbejdelse af programmer brugt filialtabelimplementeringen som "GoTo" -kommandoer på Fortran-compiler-sprog. Filialtabeller bruges stadig til at implementere ændringer i programstrømmen i compiler-sprog eller til at være et udgangspunkt for gentagne instruktionssekvenser.