Hva er en gren bord?
En grenstabell er en metode for å effektivt overføre programstyring fra en del av et program til et annet, eller til et andre program som er lastet dynamisk, ved å sende en gren av instruksjoner eller ved å implementere en brytererklæring. Denne metoden, noen ganger kalt et hoppbord, er avhengig av et sett omstendigheter eller forhold for å utføre et hopp for å implementere en prosedyre i henhold til en brytererklæring fra en C + -kompilator. Noen av hovedfordelene med grenstabeller er deres kompakte kodestruktur og en reduksjon i behovet for å teste returkoder individuelt når man bestemmer programflyten.
På 1980-tallet ble grenstabeller mye brukt i programmeringsspråk for montering. De brukes fortsatt i monteringsprogrammering for innebygde systemer og utvikling av operativsystemer. Siden 1990-tallet har programmeringsspråk for kompilatorer også benyttet seg av grenstabellens funksjon.
Grenstabeller består av en liste med ubetingede instruksjoner som gitt innspill, forgrener seg til andre destinasjoner. De fleste datamaskinvare kan utføre disse instruksjonene effektivt. Noen ganger kan forskyvningen - i hovedsak avstanden til destinasjonen - legges til et programtellerregister som deretter kan peke på sett med greninstruksjoner eller hoppe mellom sett med greninstruksjoner. Alt som er nødvendig for å implementere en grenstabell er validering av inngangskoden, transformering av dataene til en forskyvning og multiplisering av dataene til en gitt instruksjonslengde.
Innebygd programmering bruker grenstabeller da de er mer minneeffektive enn å bruke maskinkode eller matriser. Innebygde kontrollsystemer trenger minnebesparelser, og selv om det kan koste en liten mengde ytelse under tilgang til grenstabellen, vil alle virtuelle metodefunksjonskostnader koste den samme ytelsen for stabil funksjon. Den begrensede CPU-tilgangen og minnebesparelser i innebygde systemer trenger en grenstabell for statiske funksjonssett.
Kompilatorens programmeringsspråk genererer egne grenstabeller ved behov ved hjelp av søketaster for å optimalisere kompilatorer. Noen programmerere velger å hjelpe kompilatoren manuelt med generert konteksttabellgenerering ved å gi kompilatoren to-trinns betingede parametere som de skal søke nøkler fra. I de tidligere årene med kompilering av programmer pleide implementeringen av grenstabellen å være "GoTo" -kommandoene på Fortran-kompilatorspråk. Grentabeller brukes fremdeles til å implementere endringer i programflyten i kompilatorspråk eller for å være et utgangspunkt for gjentatte instruksjonssekvenser.