I den generelle model for en kompilator er der
ingen permanent database .
Her er hvorfor:
* kompilatorens mål: Kompilatorer er designet til at oversætte kildekode til maskinkode (eller mellemkode) til en bestemt platform. De gemmer ikke data vedvarende.
* Midlertidige datastrukturer: En kompilator bruger en række datastrukturer som symbolborde, mellemkodepræsentation og midlertidige variabler til at behandle kildekoden. Disse er alle midlertidige og findes kun under samlingsprocessen.
* Databasesystemer: Databaser er specialiserede systemer til lagring og hentning af data over længere perioder. De er adskilt fra kompilatoren og er ikke direkte involveret i kompilationsprocessen.
Eksempel:
Forestil dig, at du samler et C ++ -program. Kompilatoren læser din kildekode, analyserer den, genererer mellemkode og producerer i sidste ende en eksekverbar fil. Alle oplysninger, som kompilatoren bruger (som variable navne, typer, funktionsdefinitioner) gemmes i midlertidige datastrukturer i kompilatorens hukommelse. Når samlingen er afsluttet, kasseres disse strukturer.
Bemærk: Nogle avancerede kompilatoroptimeringsteknikker kan muligvis bruge midlertidige filer eller databaser til lagring af mellemresultater. Dette er normalt for at forbedre effektiviteten og ydeevnen, men det er ikke et grundlæggende krav for alle kompilatorer.