I den generelle modellen til en kompilator er det
ingen permanent database .
Her er grunnen:
* Compilers mål: Kompilatorer er designet for å oversette kildekode til maskinkode (eller mellomkode) for en bestemt plattform. De lagrer ikke data vedvarende.
* Midlertidige datastrukturer: En kompilator bruker en rekke datastrukturer som symboltabeller, representasjon av mellomkode og midlertidige variabler for å behandle kildekoden. Dette er alle midlertidig og eksisterer bare under kompileringsprosessen.
* Databasesystemer: Databaser er spesialiserte systemer for lagring og henting av data over lengre perioder. De er atskilt fra kompilatoren og er ikke direkte involvert i kompilasjonsprosessen.
Eksempel:
Se for deg at du sammenstiller et C ++ -program. Kompilatoren leser kildekoden din, analyserer den, genererer mellomkode og produserer til slutt en kjørbar fil. All informasjonen kompilatoren bruker (som variabelnavn, typer, funksjonsdefinisjoner) lagres i midlertidige datastrukturer i kompilatorens minne. Når samlingen er fullført, blir disse strukturene kastet.
Merk: Noen avanserte kompilatoroptimaliseringsteknikker kan bruke midlertidige filer eller databaser for å lagre mellomresultater. Dette er vanligvis for å forbedre effektiviteten og ytelsen, men det er ikke et grunnleggende krav for alle kompilatorer.