Vad är en symboltabell?
En symboltabell används av datorsystem som ett sätt att centralisera information och minska programstorleken. Dessa tabeller fungerar som nyckeln till en hemlig kod; en symbol eller sträng placeras bredvid en annan, i allmänhet mycket större, informationsdel. När ett program läser en symbol som är associerad med symboltabellen, refererar programmet till tabellen och tar informationen snarare än symbolen. Detta gör att stora delar av information eller vanligt upprepade strukturer endast kan ha en post, vilket minskar programmets totala storlek.
Konceptet bakom ett symbolbord är mycket enkelt. En enda tabell innehåller ett brett utbud av information som används av ett program, var och en med sin egen post och en unik tillhörande symbol. Denna information kan vara kodsträngar, felsökningsinformation, minnesplatser, bokstavligen allt som programmet kan använda för att fungera. Istället för att inkludera den informationen i programmet, refererar koden helt enkelt till tabellen med sin unika symbol.
Det finns två platser där en symboltabell är vanlig: vid sammanställning av kod till program och i att länka bibliotek som används av flera program. När den används i program absorberas den faktiska tabellen vanligtvis i programmet eller görs till ett delat bibliotek vid tidpunkten för sammanställningen. Det är ovanligt att lämna listan separat, eftersom ändring av listan kan få extrema konsekvenser för programmet. Även när tabellen transformeras i denna process är det fortfarande samma grundläggande sak, det ingår bara tillsammans med annan kod.
När en symboltabell används i ett länkande bibliotek, utvidgas möjligheterna för hur det kan fungera drastiskt. Ett länkande bibliotek är en uppsättning information som antas vara tillgänglig för ett program när som helst. Dessa bibliotek delas ofta av ett operativsystem eller en familj av relaterade program som alla skapas av samma företag.
Var och en av dessa bibliotek är fyllda med information om vissa ämnen. Ett bibliotek kan innehålla ett brett spektrum av programmering för att rita fönstergränserna för operativsystemets användargränssnitt medan ett annat kan innehålla information om var en specifik grupp av program lagrar information i minnet. Eftersom ett länkande bibliotek kan innehålla sådant slumpmässigt sortiment av information, inkluderas ofta symboltabeller med dem.
Genom att integrera en symboltabell i en länkare är det möjligt att dela symbolerna över en programserie. Detta tillåter flera program åtkomst till samma data när som helst. Om ett stort antal program kräver alla samma information, inklusive den i en symboltabell i ett bibliotek, minskar vi storleken på den totala programgruppen.