Wat is een symbolentabel?
Een symbolentabel wordt door computersystemen gebruikt om informatie te centraliseren en de omvang van programma's te verminderen. Deze tabellen werken als de sleutel tot een geheime code; een symbool of string wordt naast een ander, meestal veel groter stuk informatie geplaatst. Wanneer een programma een symbool leest dat aan de symbolentabel is gekoppeld, verwijst het programma naar de tabel en neemt het de informatie in plaats van het symbool. Hierdoor kunnen grote stukjes informatie of vaak herhaalde structuren slechts één invoer hebben, waardoor de totale omvang van het programma wordt beperkt.
Het concept achter een symbolentabel is heel eenvoudig. Een enkele tabel bevat een breed scala aan informatie die door een programma wordt gebruikt, elk met een eigen invoer en een uniek bijbehorend symbool. Deze informatie kan bestaan uit codereeksen, foutopsporingsinformatie, geheugenlocaties, letterlijk alles dat het programma kan gebruiken om te functioneren. In plaats van die informatie in het programma op te nemen, verwijst de code eenvoudigweg naar de tabel met behulp van het unieke symbool.
Er zijn twee plaatsen waar een symbolentabel veel voorkomt: bij het compileren van code in programma's en bij het koppelen van bibliotheken die door meerdere programma's worden gebruikt. Bij gebruik in programma's wordt de werkelijke tabel meestal opgenomen in het programma of tijdens het compileren omgezet in een gedeelde bibliotheek. Het is ongebruikelijk om de lijst apart te laten, omdat het wijzigen van de lijst extreme gevolgen kan hebben voor het programma. Zelfs wanneer de tabel in dit proces wordt getransformeerd, is het nog steeds hetzelfde basiselement, het is gewoon samen met andere code opgenomen.
Wanneer een symbolentabel wordt gebruikt in een koppelingsbibliotheek, worden de mogelijkheden om dit te doen drastisch uitgebreid. Een koppelingsbibliotheek is een verzameling informatie die op elk gewenst moment beschikbaar is voor een programma. Deze bibliotheken worden vaak gedeeld door een besturingssysteem of een familie van gerelateerde programma's die allemaal door hetzelfde bedrijf zijn gemaakt.
Elk van deze bibliotheken is gevuld met informatie over bepaalde onderwerpen. Een bibliotheek kan een breed scala aan programmering bevatten voor het tekenen van de vensterranden van de gebruikersinterface van het besturingssysteem, terwijl een andere informatie kan bevatten over waar een specifieke groep programma's informatie in het geheugen opslaat. Aangezien een koppelingsbibliotheek een dergelijk willekeurig assortiment informatie kan bevatten, zijn er vaak symbooltabellen bij inbegrepen.
Door een symbolentabel in een linker op te nemen, is het mogelijk om de symbolen over een programmaserie te delen. Hierdoor hebben meerdere programma's op elk moment toegang tot dezelfde gegevens. Als een groot aantal programma's allemaal dezelfde informatie nodig heeft, wordt de omvang van de totale programmagroep aanzienlijk verkleind, door deze in een symbolentabel in een bibliotheek op te nemen.