I computerprogrammeringsterminologi er programmeringssprog ofte adskilt i "højt niveau" og "lavt niveau" sprog. Forskellen mellem de to er et spørgsmål om hardwareinteraktion. Enkelt sagt, lavniveausprog ligger "lavere" på computersystemet, tættere på faktisk hardwareinteraktion. Sprog på højt niveau abstraheres væk fra hardwaren. Resultatet af denne abstraktion kan resultere i hurtigere, mere læsbar kode, men lavere hastighedsfordele og mindre adgang til systemressourcer.
Abstraktion
Det, der adskiller sprog på højt niveau fra sprog på lavt niveau, er det abstraktionsniveau et sprog har fra systemressourcer. Det kan blive langsomt og smertefuldt at håndtere systemressourcer på daglig basis. Sprog på højt niveau blev skabt til at håndtere dette problem ved at håndtere systemet for programmøren, frigørende hende til at udføre en mere avanceret opgave, mens hun ignorerer de små detaljer i systemet, såsom hukommelse ledelse. Dette har dog en ulempe ved, at en programmør kan finde sig selv i en situation, hvor systemadgang er påkrævet, og et sprog på højt niveau ikke kan give denne adgang. Et sprog på højt niveau er typisk ikke egnet til systemprogrammering.
Dagens video
Hastighed
Højniveausprog er typisk "fortolkede" sprog snarere end de "kompilerede" lavniveausprog. "Fortolket" betyder simpelthen, at et sprog bruger en fortolker, der udfører kildekoden en linje ad gangen, i stedet for at kompilere en binær fil. Tolke er dog ofte programmer skrevet på kompilerede sprog. På grund af dette kører det fortolkede sprog - Python, som et eksempel - kun oven på Python-fortolkeren, som er skrevet i C. Dette øger hukommelsen og tid overhead for fortolkede programmer, og de udføres ofte langsommere.
Systemets egenskaber
En tilsyneladende styrke ved kode på højt niveau er dens portabilitet. Kode på højt niveau kan køre på ethvert system, der har den relevante fortolker installeret. Men når et program kompileres til en computer, tager det hensyn til hele systemets miljø i dets kompilering. Et tolket sprog er allerede abstraheret fra systemet til et sådant punkt, at det tolkede program ikke ved noget om systemet undtagen hvad tolken kan levere det.
Programmeringsgrænser
På grund af karakteren af sprog på højt niveau er der visse opgaver, som de ikke er egnede til, eller i det mindste endnu ikke er egnede til. Uden adgang til systemressourcer er det svært at udvikle hurtige, OS-native applikationer. Desuden bliver selv udvikling af et operativsystem problematisk. Efterhånden som mere software flytter online, bliver denne kendsgerning mindre af bekymring, men til kommerciel og industriel brug kan fortolkede sprog arbejde for langsomt eller for langt væk fra hardwareinteraktion.