Hvad er programmering på højt niveau?
Programmering på højt niveau involverer at skrive et computerprogram på et sprog, der forhindrer programmøren i at skulle håndtere direkte hardware på den specifikke computer, der programmeres. Denne abstraktion giver programmereren mulighed for at fokusere mere på programdesign, flow og funktionalitet og mindre på at samle grundlæggende systemressourcer for at nå disse mål. Et programmeringssprog på højt niveau kan håndtere hukommelsesstyring eller input og output på en måde, som programmereren kun behøver for at forstå konceptet og ikke hardwarespecifikationerne i et givet system. I modsætning til programmering på højt niveau er programmering på lavt niveau, hvor der er lidt, hvis nogen, adskillelse mellem den skrevne computerkode og de handlinger, computeren udfører.
Udviklingen af programmeringssprog på højt niveau reagerede på et behov for menneskelige læsbare kildekodefiler, der let kunne forstås og ændres. Ved at bruge naturlige sprogløsninger bliver kildekoden på højt niveau langt mere læselig end samlingssprog eller andre maskinsprog. Efterhånden som computerprogrammerne skred frem, blev det praktiske ved at skrive hele programmer på sprog på lavt niveau mindre gennemførligt.
Til gengæld for programmering på et sprog, der er menneskeligt læseligt og ikke kræver hardwarekendskab på lavt niveau, er der et begreb kendt som en abstraktionsstraf. Dette beskriver de øgede krav til processorkraft, hukommelsesbrug og andre typer omkostninger, der er nødvendige for at køre det endelige program. Dette gælder især for tolkede sprog, der skal køre en tolk for at udføre programmet, hvilket i det væsentlige kræver, at to applikationer skal køre på samme tid.
Kompilerede sprog er programmeringssprog på højt niveau, hvor de læsbare kildefiler omdannes til maskinkode, som computeren kan læse. Mens et kompileret sprog lider mindre af en abstraktionsstraf end et tolket sprog, er det stadig afhængigt af forudkompilerede biblioteker og automatiserede kompilatorfunktioner. Disse elementer kan skade optimeringen af et komplekst program, hvor ydeevne er afgørende.
Brug af programmeringssprog på højt niveau har også gjort brugervenlig programmering lettere. Dette letter det ved let at tilføje standardiserede elementer til en brugergrænseflade, som de fleste sprog på højt niveau giver. I stedet for at udvikle brugerdefineret kode til et vinduessystem eller en interfaceknap hver gang en er nødvendig, kan kendte elementer let placeres i en grænseflade med kun et par kodelinjer. Dette giver mulighed for programmer, som slutbrugerne lettere kan lære eller umiddelbart kan kende dem.
Brugen af udtrykket "programmering på højt niveau" er i forhold til programmererens oplevelse. Der er nogle formidlende sprog, der engang blev betragtet som lavt niveau, men nu ikke er det. Ligeledes deler nogle sprog på højt niveau aspekter med sprog på lavt niveau og slører linjen mellem dem.