Hva er et mellomspråk?
Når datamaskinprogrammering analyseres, når menneskelig lesbar kildekode blir analysert av en kompilator, oversetter kompilatoren ofte kildekommandoene til en sekvens med instruksjoner som ikke er helt egen maskinkode, men kan videre bearbeides, optimaliseres eller kompileres av kompilatoren eller annen programvare. verktøy. Filene som er produsert inneholder instruksjoner som sies å være på et mellomspråk, fordi språket som brukes av kompilatoren verken er meningsfullt for det større operativsystemet eller språket som brukes av programmereren til å skrive koden i utgangspunktet, men i stedet er et språk som fungerer som en bro mellom skriving og gjennomføring av programmet. Noen ganger brukes et mellomspråk for å gjøre det mulig for en kompilator å foreta veldig presise optimaliseringer slik at programmet kjører mer effektivt, men det kan også brukes til å produsere utdatafiler som er portable mellom forskjellige, inkompatible systemer. Selve syntaksene til språket kan ligne på maskinkode eller andre typer ikke-menneskelig lesbar bytekode, eller språket kan bare være et eksisterende datamaskinprogrammeringsspråk.
Når det brukes til kompilatoroptimalisering, tar en språkkompilator hvert utsagn i en kildekodefil og bryter kommandoen ned til mellomspråket. En enkelt menneskelig lesbar programmeringserklæring kan fordele seg i dusinvis av maskinspråkinstruksjoner, slik at mellomspråket skaper et abstraksjonsnivå som kompilatoren kan bruke for å identifisere områder av koden der optimaliseringer kan gjøres uten først å måtte binde koden til eventuelle innfødte implementeringer eller biblioteker. Når den er fullført, kan den mellomliggende kodefilen kompileres videre for å lage en egen binær fil, eller den kan kjøres gjennom et annet program, kjent som en tolk, som vil utføre koden ved å kompilere den til native instruksjoner etter behov.
Noen språk, for eksempel Java®, bruker et mellomspråk for å lage kompilerte filer som er optimaliserte, men også bærbare til andre datasystemer. Denne typen koder er noen ganger kjent som bytecode og ligner maskinkode eller monteringsspråk. Bytecode lagres i filer på en måte som er plattformuavhengig, noe som betyr at den kan overføres til ethvert datasystem eller enhet som kan kjøre en tolk. Når bytekoden er på et system, kan den enten kjøres som et tolket program, eller den kan settes sammen for å kjøre innfødt på målsystemet.
I noen tilfeller er et dataspråk designet for å gjøre det enkelt å programmere mot et bestemt mål, for eksempel et interaktivt webapplikasjon, men designerne ønsker ikke å inkludere tilpassede kompilatorer, tolker eller plug-ins for forskjellige systemer. I disse tilfellene kan mellomspråket til kompilatoren være et eksisterende språk som allerede har etablert tverrplattformstolkere. Det resulterende mellomspråket i dette tilfellet er menneskelig lesbart. Et eksempel på et dataprogrammeringsspråk som også brukes som et mellomspråk er JavaScript®, som har fordelen av å kunne kjøre i nesten hvilken som helst nettleser på hvilken som helst plattform fra og med 2011.