Wat is een vertakkingstafel?
Een vertakkingstabel is een methode om de besturing van het programma efficiënt over te dragen van het ene deel van een programma naar het andere, of naar een tweede programma dat dynamisch is geladen, door een tak van instructies te verzenden of door een Switch -instructie te implementeren. Deze methode, soms een springtabel genoemd, vertrouwt op een reeks omstandigheden of voorwaarden om een sprong uit te voeren om een procedure te implementeren volgens een schakelverklaring van een C+ -compiler. Enkele van de belangrijkste voordelen van vertakkingstabellen zijn hun compacte codestructuur en een vermindering van de noodzaak om retourcodes afzonderlijk te testen bij het bepalen van de programmastroom.
In de jaren 1980 werden vertakkingstabellen breed gebruikt in assemblagetaalprogrammering. Ze worden nog steeds gebruikt in assemblageprogrammering voor ingebedde systemen en ontwikkeling van besturingssystemen. Sinds de jaren negentig hebben compilerprogrammeertalen ook gebruik gemaakt van het functioneren van de vertakkingstabel.
Branchetabellen bestaan uit een lijst met onvoorwaardelijke instructies die, gegeven input, zich aftakken naar andere bestemmingen.De meeste computerhardware kan deze instructies efficiënt uitvoeren. Soms kan de offset - in wezen de afstand tot de bestemming - worden toegevoegd aan een programmagestuur dat vervolgens kan wijzen op sets van filiaalinstructies of tussen sets van filialen instructies kan springen. Het enige dat nodig is om een filiaaltabel te implementeren, is validatie van de invoercode, het omzetten van de gegevens in een offset en het vermenigvuldigen van de gegevens met een bepaalde instructielengte.
Embedded programmering maakt gebruik van vertakkingstabellen omdat ze meer geheugenefficiënter zijn dan het gebruik van machinecode of array -aanwijzingen. Ingebedde besturingssystemen hebben die geheugenbesparingen nodig, en hoewel het een kleine hoeveelheid prestaties kan kosten tijdens de toegang tot de vertakkingstabel, zou elke virtuele methode -functieaanroep dezelfde hoeveelheid prestaties kosten voor stabiel functioneren. De beperkte CPU -toegang en geheugenbesparingen in ingebedde systemen hebben een vertakkingstabel nodigr Statische functiesets.
Compiler -programmeertalen genereren hun eigen vertakkingstabellen wanneer dat nodig is door zoeksleutels over het optimaliseren van compilers. Sommige programmeurs kiezen ervoor om de compiler handmatig te helpen met context-tak-tabel generatie door de compiler tweestappen voorwaardelijke parameters te geven om te zoeken. In de eerdere jaren van compileringsprogramma's waren de implementatie van de filiaaltabel vroeger de "GOTO" -opdrachten in Fortran Compiler -talen. Branchetabellen worden nog steeds gebruikt om wijzigingen in de programmastroom in compileertalen te implementeren of om een startpunt te zijn voor herhaalde instructiesequenties.