Skip to main content

Vad är ett grenbord?

Ett grentabell är en metod för att effektivt överföra programkontroll från en del av ett program till ett annat, eller till ett andra program som har laddats dynamiskt, genom att skicka en gren av instruktioner eller genom att implementera ett switch -uttalande.Denna metod, ibland kallad ett hopptabell, förlitar sig på en uppsättning omständigheter eller villkor för att utföra ett hopp för att implementera en procedur enligt ett switch -uttalande från en C+ -kompilerare.Några av de viktigaste fördelarna med filialtabeller är deras kompakta kodstruktur och en minskning av behovet av att testa returkoder individuellt vid bestämning av programflödet.

På 1980 -talet användes filialtabeller i stor utsträckning i montering av språkprogrammering.De används fortfarande i monteringsprogrammering för inbäddade system och utveckling av operativsystem.Sedan 1990 -talet har kompileringsprogrammeringsspråk också använt grenbordsfunktionen.

Branchtabeller består av en lista över ovillkorliga instruktioner som, med tanke på input, grenar till andra destinationer.De flesta datorhårdvaror kan utföra dessa instruktioner effektivt.Ibland, offset mdash;I huvudsak avståndet till destinationen mdash;kan läggas till ett programräknare som sedan kan peka på uppsättningar av filialinstruktioner eller hoppa bland uppsättningar av filialinstruktioner.Allt som är nödvändigt för att implementera en grentabell är validering av ingångskoden, omvandla data till en offset och multiplicera data till en given instruktionslängd.

Embedded Programmering använder grentabeller eftersom de är mer minneseffektiva än att använda maskinkodeller arrayade pekare.Inbäddade kontrollsystem behöver att minnesbesparingar, och även om det kan kosta en liten mängd prestanda under åtkomst till grentabellen, skulle alla virtuella metodfunktionssamtal kosta samma mängd prestanda för stabil funktion.Den begränsade CPU -åtkomst- och minnesbesparingarna i inbäddade system behöver en grentabell för statiska funktionsuppsättningar.

Kompileringsprogrammeringsspråk genererar sina egna grentabeller vid behov med hjälp av sökknappar för att optimera kompilatorerna.Vissa programmerare väljer att manuellt hjälpa kompilatorn med den sammanhangade grenstabellgenerationen genom att ge kompilatorn tvåstegs villkorade parametrar för att söka efter nycklar.Under de tidigare åren med sammanställningsprogram brukade genomförandet av filialtabellen vara GOTO -kommandona på Fortran -kompilatorspråk.Grentabeller används fortfarande för att implementera förändringar i programflödet på kompilatorspråk eller för att vara en utgångspunkt för upprepade instruktionssekvenser.