Vad är ett grenbord?

En 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 en 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 grentabeller i stor utsträckning vid montering av montering. De används fortfarande i monteringsprogrammering för inbäddade system och utveckling av operativsystem. Sedan 1990 -talet har kompilatorprogrammeringsspråk också använt filialbordsfunktionen.

grentabeller 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 kan offset - i huvudsak avståndet till destinationen - 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.

Inbäddad programmering använder grentabeller eftersom de är mer minneseffektiva än att använda maskinkod eller 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 minnesbesparingar i inbäddade system behöver en grenbord förr statiska funktionsuppsättningar.

Kompileringsprogrammeringsspråk genererar sina egna grentabeller vid behov med hjälp av söknycklar för att optimera kompilatorerna. Vissa programmerare väljer att manuellt hjälpa kompilatorn med Contexted Branch Table Generation 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.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?