Hva er et mellomspråk?
I dataprogrammering, når menneskelig lesbar kildekode er analysert av en kompilator, oversetter kompilatoren ofte kildekommandoene til en sekvens av instruksjoner som ikke er helt naturlig maskinkode, men som videre kan behandles, optimaliseres eller kompileres av kompilatoren eller andre programvareverktøy. Filene som produseres inneholder instruksjoner som sies å være på et mellomspråk, fordi språket som brukes av kompilatoren verken er meningsfylt 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 skrivingen og utførelsen av programmet. Et mellomspråk brukes noen ganger for å la en kompilator gjøre veldig presise optimaliseringer, slik at programmet kjører mer effektivt, men det kan også brukes til å produsere utgangsfiler som er bærbare mellom forskjellige, inkompatible systemer. Den faktiske syntaksen til språket kan ligne maskinkode eller andre typer ikke-menneskelige readable bytecode, eller språket kan bare være et eksisterende dataprogrammeringsspråk på tvers av plattformer.
Når den brukes til kompilatoroptimalisering, tar en språkkompilator hver uttalelse i en kildekodefil og bryter kommandoen ned i mellomspråket. En enkelt menneskelig lesbar programmeringserklæring kan bryte ned i dusinvis av maskinspråkinstruksjoner, slik at mellomspråket skaper et abstraksjonsnivå som kompilatoren kan bruke for å identifisere områder i koden der optimaliseringer kan gjøres uten først å måtte binde koden til noen innfødte implementeringer eller biblioteker. Når den er fullført, kan den mellomliggende kodefilen deretter settes videre for å lage en naturlig binær fil, eller den kan kjøres gjennom et annet program, kjent som en tolk, som vil utføre koden ved å samle den til native instruksjoner etter behov.
Noen språk, for eksempel Java®, bruker en intermeDiple språk for å lage kompilerte filer som er optimalisert, men også bærbare for andre datasystemer. Denne typen kode 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 et hvilket som helst 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 det kan sammenstilles for å kjøre naturlig på målsystemet.
I noen tilfeller er et dataspråk designet for å gjøre det enkelt å programmere mot en spesifikk slutt, for eksempel en interaktiv webapplikasjon, men designerne ønsker ikke å inkludere tilpassede kompilatorer, tolker eller plugins for forskjellige systemer. I disse tilfellene kan kompilatorens mellomspråk være et eksisterende språk som allerede har etablert tolker på tvers av plattformer. Det resulterende mellomspråket i dette tilfellet er menneskelig lesbart. Et eksempel på en dataprogramprogramNG -språ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 2011.