Hvad er en symboltabel?
En symboltabel bruges af computersystemer som en måde at centralisere information og reducere størrelsen på programmer. Disse tabeller fungerer som nøglen til en hemmelig kode; et symbol eller en streng placeres ved siden af et andet, generelt meget større informationsstykke. Når et program læser et symbol, der er knyttet til symboltabellen, henviser programmet til tabellen og tager informationen snarere end symbolet. Dette tillader, at store stykker information eller ofte gentagne strukturer kun har én indgang, hvilket reducerer programmets samlede størrelse.
Konceptet bag et symbolbord er meget enkelt. En enkelt tabel indeholder en lang række informationer, der bruges af et program, hver med sin egen indgang og unikke tilknyttede symbol. Denne information kan være strenge med kode, fejlsøgningsinformation, hukommelsesplaceringer, bogstaveligt talt alt, hvad programmet kunne bruge til at fungere. I stedet for at inkludere disse oplysninger i programmet henviser koden blot til tabellen ved hjælp af dets unikke symbol.
Der er to steder, hvor en symboltabel er almindelig: ved udarbejdelse af kode til programmer og ved at forbinde biblioteker, der bruges af flere programmer. Når det bruges i programmer, absorberes den faktiske tabel typisk i programmet eller oprettes til et delt bibliotek på tidspunktet for kompilering. Det er usædvanligt at forlade listen separat, da ændring af listen kan have ekstreme konsekvenser for programmet. Selv når tabellen transformeres i denne proces, er det stadig den samme grundlæggende ting, det er bare inkluderet sammen med anden kode.
Når der bruges en symboltabel i et linkbibliotek, udvides mulighederne for, hvordan det kan arbejde, drastisk. Et linkbibliotek er et sæt information, der antages at være tilgængeligt for et program til enhver tid. Disse biblioteker deles ofte af et operativsystem eller en familie af relaterede programmer, der alle er lavet af det samme firma.
Hvert af disse biblioteker er fyldt med oplysninger om visse emner. Et bibliotek kan indeholde en bred vifte af programmering til tegning af vinduesgrænser i operativsystemets brugergrænseflade, mens et andet kan indeholde oplysninger om, hvor en bestemt gruppe af programmer gemmer information i hukommelsen. Da et linkende bibliotek kan indeholde et sådant tilfældigt sortiment af information, er symboltabeller ofte inkluderet med dem.
Ved at inkorporere en symboltabel i en linker er det muligt at dele symbolerne på tværs af en programserie. Dette giver flere programmer adgang til de samme data til enhver tid. Hvis et stort antal programmer alle kræver den samme information, inklusive den i en symboltabel i et bibliotek, reduceres størrelsen af den samlede programgruppe enormt.