I dataprogrammeringsterminologi er programmeringsspråk ofte delt inn i "høyt nivå" og "lavt nivå" språk. Forskjellen mellom de to er et spørsmål om maskinvareinteraksjon. Enkelt sagt ligger lavnivåspråk "lavere" på datasystemet, nærmere faktisk maskinvareinteraksjon. Språk på høyt nivå abstraheres bort fra maskinvaren. Resultatet av denne abstraksjonen kan resultere i raskere, mer lesbar kode, men lavere hastighetsfordeler og mindre tilgang til systemressurser.
Abstraksjon
Det som skiller høynivåspråk fra lavnivåspråk er abstraksjonsnivået et språk har fra systemressurser. Å håndtere systemressurser på daglig basis kan bli sakte og smertefullt. Høynivåspråk ble opprettet for å håndtere dette problemet ved å håndtere systemet for programmereren, og frigjøre henne til å fullføre mer avansert oppgave mens hun ignorerer de minste detaljene i systemet, for eksempel minne ledelse. Dette har imidlertid en ulempe ved at en programmerer kan komme i en situasjon der systemtilgang er nødvendig, og et språk på høyt nivå kan ikke gi den tilgangen. Et høynivåspråk er vanligvis ikke egnet for systemprogrammering.
Dagens video
Hastighet
Høynivåspråk er vanligvis "tolkede" språk i stedet for de "kompilerte" lavnivåspråkene. "Tolket" betyr ganske enkelt at et språk bruker en tolk som kjører kildekoden én linje om gangen, i stedet for å kompilere en binær fil. Tolker er imidlertid ofte programmer skrevet på kompilerte språk. På grunn av dette kjører det tolkede språket - Python, som et eksempel - bare på toppen av Python-tolken, som er skrevet i C. Dette øker minnet og tid overhead for tolkede programmer, og de kjører ofte langsommere.
Systemsegenheter
En tilsynelatende styrke ved høynivåkode er dens portabilitet. Høynivåkode kan kjøres på ethvert system som har riktig tolk installert. Men når et program kompileres for en datamaskin, tar det hensyn til hele miljøet til det systemet i kompileringen. Et tolket språk er allerede abstrahert fra systemet til et slikt punkt at det tolkede programmet ikke vet noe om systemet bortsett fra hva tolken kan levere det.
Programmeringsgrenser
På grunn av karakteren til høynivåspråk er det visse oppgaver som de ikke er egnet for, eller i det minste ennå ikke er egnet for. Uten tilgang til systemressurser er det vanskelig å utvikle raske, OS-native applikasjoner. Dessuten blir selv å utvikle et operativsystem problematisk. Ettersom mer programvare flyttes på nettet, blir dette faktum mindre bekymringsfullt, men for kommersiell og industriell bruk kan tolkede språk fungere for sakte eller for langt unna maskinvareinteraksjon.