Hva er programmering på høyt nivå?
Programmering på høyt nivå innebærer å skrive et dataprogram på et språk som hindrer programmereren i å måtte forholde seg direkte til maskinvaren til den spesifikke datamaskinen som programmeres. Denne abstraksjonen lar programmereren fokusere mer på programdesign, flyt og funksjonalitet og mindre på å samle grunnleggende systemressurser for å oppnå disse målene. Et programmeringsspråk på høyt nivå kan håndtere minnestyring eller input og output på en måte som programmereren bare trenger å forstå konseptet og ikke maskinvarespesifikasjonene til et gitt system. I motsetning til programmering på høyt nivå er programmering på lavt nivå, der det er liten, om noen, skille mellom datakoden som er skrevet og handlingene datamaskinen utfører.
Utviklingen av programmeringsspråk på høyt nivå reagerte på et behov for menneskelige lesbare kildekodefiler som lett kunne forstås og modifiseres. Ved å bruke naturlige språkløsninger, blir kildekoden på høyt nivå langt mer lesbar enn monteringsspråk eller andre maskinspråk. Etter hvert som størrelsen på dataprogrammer gikk, ble det praktisk mulig å skrive hele programmer på språk på lite nivå.
I bytte mot programmering på et språk som er menneskelig leselig og ikke krever maskinvarekunnskap på lavt nivå, er det et konsept kjent som en abstraksjonsstraff. Dette beskriver de økte kravene til prosessorkraft, minnebruk og andre typer overhead som er nødvendige for å kjøre det endelige programmet. Dette gjelder spesielt for tolkede språk som må kjøre en tolk for å utføre programmet, noe som i hovedsak krever at to applikasjoner må kjøres samtidig.
Kompilerte språk er programmeringsspråk på høyt nivå der lesbare kildefiler blir omgjort til maskinkode som datamaskinen kan lese. Mens et samlet språk lider mindre av en abstraksjonsstraff enn et tolket språk, er det fortsatt avhengig av forhåndskompilerte biblioteker og automatiserte kompilatorfunksjoner. Disse elementene kan skade optimaliseringen av et komplekst program der ytelse er viktig.
Bruken av programmeringsspråk på høyt nivå har også gjort brukervennlig programmering enklere. Dette forenkles ved at det er enkelt å legge standardiserte elementer til et brukergrensesnitt som de fleste høynivåspråk gir. I stedet for å utvikle tilpasset kode for et vindussystem eller grensesnittknapp hver gang man trenger det, kan kjente elementer enkelt plasseres i et grensesnitt med bare noen få kodelinjer. Dette gjør det mulig for programmer som sluttbrukere kan lære lettere eller umiddelbart kan bli kjent med.
Bruken av begrepet "programmering på høyt nivå" er i forhold til programmererens opplevelse. Det er noen mellomspråk som en gang ble ansett som lavt nivå, men som nå ikke er det. Likeledes deler noen høyt nivå språk aspekter med lavnivå språk, og gjør linjen mellom dem uskarp.