Kas yra šakų lentelė?

Šakos lentelė yra būdas efektyviai perkelti programos valdymą iš vienos programos dalies į kitą arba į antrąją programą, kuri buvo dinamiškai įkelta, siunčiant instrukcijų šaką arba įgyvendinant komutatoriaus sakinį. Šis metodas, kartais vadinamas peršokimo lentele, priklauso nuo aplinkybių ar sąlygų, kad būtų atliktas šuolis, kad būtų įgyvendinta procedūra pagal perjungimo teiginį iš C+ kompiliatoriaus. Kai kurie pagrindiniai šakinių lentelių pranašumai yra kompaktiška kodo struktūra ir poreikis atskirai tikrinti grąžinimo kodus nustatant programos srautą.

Devintajame dešimtmetyje šakų lentelės buvo plačiai naudojamos asemblerio kalbos programavimui. Jie vis dar naudojami programuojant įterptųjų sistemų ir kuriant operacines sistemas. Nuo 1980-ųjų kompiliatorių programavimo kalbos taip pat naudoja šakinių lentelių veikimą.

Atšakų lentelės susideda iš besąlyginių instrukcijų, kurios, įvestos, išsišakoja į kitas paskirties vietas, sąrašo. Dauguma kompiuterių techninės įrangos gali efektyviai vykdyti šias instrukcijas. Kartais poslinkis – iš esmės atstumas iki paskirties vietos – gali būti įtrauktas į programos skaitiklio registrą, kuris tada gali nurodyti šakų komandų rinkinius arba pereiti tarp atšakų komandų rinkinių. Viskas, ko reikia šakinei lentelei įgyvendinti, yra įvesties kodo patvirtinimas, duomenų transformavimas į poslinkį ir duomenų padauginimas iki nurodytos komandos ilgio.

Įterptasis programavimas naudoja šakų lenteles, nes jos yra efektyvesnės atminties nei naudojant mašininį kodą ar masyvo rodykles. Įterptosioms valdymo sistemoms reikia sutaupyti atmintį ir, nors tai gali kainuoti nedidelį našumą pasiekiant šakų lentelę, bet koks virtualaus metodo funkcijos iškvietimas kainuotų tiek pat našumo, kad veiktų stabiliai. Ribotai prieigai prie procesoriaus ir taupant atmintį įterptosiose sistemose reikalinga šakų lentelė statiniams funkcijų rinkiniams.

Kompiliatorių programavimo kalbos generuoja savo šakų lenteles, kai reikia, naudodamos paieškos raktus optimizuojant kompiliatorius. Kai kurie programuotojai pasirenka rankiniu būdu padėti kompiliatoriui generuoti kontekstinę šakų lentelę, suteikdami kompiliatoriui dviejų pakopų sąlyginius parametrus, pagal kuriuos galima ieškoti raktų. Ankstesniais programų kompiliavimo metais šakos lentelės diegimas buvo „GoTo“ komandos Fortran kompiliatoriaus kalbomis. Atšakų lentelės vis dar naudojamos norint įgyvendinti programų srauto pakeitimus kompiliatorių kalbomis arba būti pasikartojančių komandų sekų atskaitos tašku.