Mellomliggende representasjon

Fra Wikipedia, den frie encyklopedi

En mellomliggende representasjon er en datastruktur eller kode som blir benyttet internt av en kompilator eller virtuell maskin for å presentere kildekoden. Den er konstruert for å kunne bidra til den videre prosessering, slik som optimalisering og programtransformasjon.[1] En "god" mellomliggende representasjon må være nøyaktig – i stand til å representere kildekoden uten tap av informasjon [2] – og uavhengig av noen annen kilde- eller målspråk.[1] Den kan anta en av mange former: Representasjonen kan anta mange former: Som en datastruktur i dataminnet, eller som en spesiell tupel- eller stakk-basert bytekode som er lesbar av dataprogrammet.[3] I det sistnevnte tilfelle blir den også kalt et mellomliggende språk.

Et kanonisk eksempel er funnet i de fleste moderne kompilatorer, hvor den lineære menneskelig lesbare teksten som utgjør et dataprogram, blir transformert til en mellomliggende grafstruktur som tillater dataflytanalyse og omordning av koden før det skapes en sekvens av mikroprosessor-instruksjoner. Bruken av en mellomliggende representasjon som dette tillater kompilatorsamlinger som GNU Compiler Collection og LLVM å bli brukt av mange forskjellige programmeringsspråk for å generere kode for mange forskjellige datamaskinarkitekturer.

Referanser[rediger | rediger kilde]

  1. ^ a b Walker, David. «CS320: Compilers: Intermediate Representation» (Lecture slides). Besøkt 12. februar 2016. 
  2. ^ Chow, Fred (22. november 2013). «The Challenge of Cross-language Interoperability». ACM Queue. 11 (10). Besøkt 12. februar 2016. 
  3. ^ Toal, Ray. «Intermediate Representations». Besøkt 12. februar 2016.