Der er en hel del software- niveauer mellem computerbrugere og computeren selv, og dette er endnu sandt - i mindre grad - til edb-programmør ? . Computeren kode, de fleste programmører skriver er kun fjernt forbundet til de instruktioner , der behandles af computeren. Disse niveauer gør det lettere at bruge computeren . Machine Language
Hver computer er bygget til at køre ét sprog. Dette sprog kaldes maskinen sprog for den pågældende computer . Sproget består af binære koder , der fortæller computeren , hvad de skal gøre. Alle programmer , der kører på computeren består af en sekvens af maskindele sprog instruktioner. Eksekvering denne sekvens af instruktioner skaber opførsel af computeren . Instruktioner består af specifikke hardware- instruktioner såsom at flytte data fra hukommelsen placering X til hukommelsesplads Y, flytte data ind i eller ud af et særligt register , tilføjer de numre, der nu er i adder input registre eller spejlvende alle bits i register R1. Udfører instruktioner skrevet i maskinens sprog er det eneste, som helst computer kan gøre.
Montører
Skrivning maskine sprogkode er ekstremt trættende , risiko for fejl og svært at debug . Alt er strenge af nuller og ettaller . Det er umuligt at sige et overblik , hvis 1111000100110101 er data , en instruktion eller adressen på en hukommelse. Det første niveau af raffinement i edb-programmering var opfindelsen af assembler -og software- montører . Assemblerprogrammer har de samme instruktioner som maskinen sprogprogram , men vejledningen er ting som " ADD " og " MOVE ", som er meget lettere for mennesker at beskæftige sig med. Også adresser er i decimaltal og registre betegnes med navne som R1 i stedet for 10.001.111 . Et program kaldet en assembler oversætter programmer skrevet i assembler i tilsvarende program på maskinen, sprog, så det kan køres.
Compilere
Forsamlingen sprog var en enorm forbedring i forhold til at skrive på maskine sprog. Den ekstra tid, det tog assembler til at oversætte, hvad programmøren skrev i maskinens sprog var mere end opvejet af de enorme besparelser i tid, det tog at skrive programmet i en mere human - venlige sprog. Løsningen var ikke perfekt . Mennesker - især dem, der ikke dataloger - ønskede at beskrive problemet til at løse i stedet for at bryde det ned i små skridt om, hvordan at flytte informationer omkring en computer. Det næste niveau op på det sprog hierarki var compiler sprog. Disse sprog tillader mennesket at beskrive, hvad der skulle gøres i noncomputer vilkår. Et program kaldet en compiler oversat disse high- niveau programmer til maskinsprog . Compilere er meget mere kompliceret end montører .
Simulatorer
stedet for at bygge nye maskiner til at køre programmer skrevet i nye sprog , software simulatorer tillade en maskine til at være " simuleret . " Disse virtuelle maskiner er grundigt testet ved at køre benchmarking programmer, før de nogensinde er bygget . De simulatorer er også brugt til at afprøve nye compilere og sprog , før de nogensinde er skrevet .