Det finns en hel del programvara nivåer mellan datoranvändare och själva datorn , och det är även sant - i mindre utsträckning - för programmerare ? . Datorn kod som de flesta programmerare skriver är bara avlägset anslutna till de instruktioner som bearbetas av datorn . Dessa nivåer gör datorn enklare att använda . Machine Language
Varje dator är byggd för att köras ett språk . Detta språk kallas maskinen språk för den datorn . Språket består av binära koder som talar om för datorn exakt vad de ska göra . Alla program som körs på datorn består av en sekvens av instruktioner maskinkod . Körning av detta sekvens av instruktioner skapar beteendet hos datorn. Instruktioner bestå av specifika hårdvara instruktioner som flyttar data från minnesplatsen X till minnesplats Y , flytta data till eller från ett särskilt register , addera numren som nu i registren huggorm input eller vända alla bitarna i registret R1 . Utföra instruktioner skrivna på maskin språket är det enda en dator kan göra .
Montörer
Skriva maskin språkkod är extremt tråkiga , felbenägen och svårt att felsöka . Allt är strängar av nollor och ettor . Det är omöjligt att säga i korthet om 1111000100110101 finns data , en instruktion eller adressen till en minnesplats . Den första nivån av förfining i datorprogrammering var uppfinningen av assembler och montörer programvara . Assembler program har samma instruktioner som maskinen språkprogram , men instruktionerna är saker som " ADD " och " MOVE ", som är mycket lättare för människor att ta itu med . Dessutom , adresser är i decimaltal och register betecknas med namn som R1 istället för 10.001.111 . Ett program som kallas en montör översätter program skrivna i assembler till motsvarande program i maskin språk så att det kan köras .
Kompilatorer
Assembler var en enorm förbättring jämfört skriva på maskin språk . Den extra tid det tog assembler för att översätta vad programmeraren skrev in maskinen språket var mer än väl av de enorma besparingar i tid det tog att skriva programmet i en mer human - friendly språk . Lösningen var inte perfekt . Människor - särskilt de som inte är datavetare - ville beskriva problemet att lösa i stället för att bryta ner det i små steg om hur att flytta information kring en dator . Nästa nivå på språket hierarkin var kompilatorn språket . Dessa språk kan människan att beskriva vad som skulle göras i noncomputer termer . Ett program som kallas en kompilator översatt dessa högnivåprogram till maskinkod . Kompilatorer är mycket mer komplicerat än montörer .
Simulatorer
Istället för att bygga nya maskiner för att köra program skrivna i nya språk , programvara simulatorer tillåter en maskin för att vara " simulerad . " Dessa virtuella maskiner är noggrant testade genom att köra benchmarking program innan de någonsin byggts . De simulatorer är också används för att testa nya kompilatorer och språk innan de någonsin skrivit .