Det er ganske mange software nivåer mellom databrukere og datamaskinen i seg selv , og dette er også sant - i mindre grad - for dataprogrammerer ? . Den datakode som de fleste programmerere skriver er bare eksternt koblet til instruksjonene som behandles av datamaskinen. Disse nivåene gjøre datamaskinen enklere å bruke. Machine Språk
Hver datamaskin er bygget for å kjøre ett språk . Dette språket kalles maskinen språket for den datamaskinen. Språket består av binære koder som forteller datamaskinen hva de skal gjøre. Alle programmer som kjører på maskinen består av en sekvens av maskin språk instruksjoner . Utfører denne sekvens med instruksjoner skaper oppførselen til datamaskinen. Instruksjoner består av spesifikke maskinvareinstruksjoner som å flytte data fra minnet plassering X til minneområde Y , flytte data inn i eller ut av en bestemt register , og legger tallene som nå er i huggorm innspill registre eller bla alle bitene i registeret R1. Utføre instruksjoner skrevet i maskin språk er det eneste hvilken som helst datamaskin kan gjøre.
Montører
Skrive maskin språkkoden er ekstremt kjedelig , feil utsatt og vanskelig å feilsøke. Alt er strenger av nuller og enere . Det er umulig å fortelle på et øyeblikk hvis 1111000100110101 er data , en instruksjon eller adressen til et minneområde . Det første nivået av raffinement i programmering var oppfinnelsen av assembly og programvare montører . Assembly-programmer er de samme instruksjonene som maskinen språket programmet , men instruksjonene er ting som " ADD " og " MOVE ", som er mye lettere for mennesker å forholde seg til. Også adresser er i desimaltall og registre er merket med navn som R1 i stedet for 10001111 . Et program kalt en assembler oversetter programmer skrevet i assembly inn i tilsvarende program i maskinen språk slik at det kan kjøres .
Kompilatorer
Assembly language var en enorm forbedring i forhold til å skrive i maskin språk . Den ekstra tiden det tok assembler for å oversette hva programmereren skrev i maskinen språket var mer enn oppveid av den enorme besparelser i tid det tok å skrive programmet på en mer human- vennlig språk . Løsningen var ikke perfekt . Mennesker - særlig de som ikke er dataforskere - ønsket å beskrive problemet å løse i stedet for å bryte det ned i små trinn om hvordan å flytte informasjon rundt en datamaskin. Den neste nivå i språket hierarkiet var kompilatoren språk . Disse språkene la menneskelig å beskrive hva som skulle gjøres i noncomputer vilkår . Et program kalt en kompilator oversatt disse high - nivå programmer i maskinen språk . Kompilatorer er mye mer komplisert enn montører .
Simulatorer
stedet for å bygge nye maskiner til å kjøre programmer skrevet i nye språk , programvare simulatorer tillate en maskin til å være " simulert . " Disse virtuelle maskiner er grundig testet ved å kjøre benchmark programmer før de noensinne er bygget. Simulatorer er også brukt til å teste ut nye kompilatorer og språk før de noensinne er skrevet.