Vad är programmering på hög nivå?
Programmering på hög nivå innebär att skriva ett datorprogram på ett språk som hindrar programmeraren från att behöva ta itu direkt med hårdvaran för den specifika datorn som programmeras. Denna abstraktion gör att programmeraren kan fokusera mer på programdesign, flöde och funktionalitet och mindre på att samla grundläggande systemresurser för att uppnå dessa mål. Ett programmeringsspråk på hög nivå kan hantera minneshantering eller input och output på ett sätt som programmeraren bara behöver för att förstå konceptet och inte hårdspecifikationerna för ett givet system. I motsats till programmering på hög nivå är programmering på låg nivå, där det finns liten, om någon, skillnad mellan den skrivna datorkoden och de åtgärder datorn utför.
Utvecklingen av programmeringsspråk på hög nivå svarade på ett behov av mänskliga läsbara källkodfiler som lätt kunde förstås och modifieras. Genom att använda naturliga språklösningar blir källkoden på hög nivå mycket läsbarare än monteringsspråk eller andra maskinspråk. När storleken på datorprogram steg framåt blev praktiken av att skriva hela program på språk på låg nivå mindre genomförbar.
I utbyte mot programmering på ett språk som är mänskligt läsbart och inte kräver hårdvara kunskap på låg nivå, finns det ett begrepp som kallas en abstraktionsstraff. Detta beskriver de ökade kraven på processorkraft, minnesanvändning och andra typer av omkostnader som behövs för att köra det slutliga programmet. Detta gäller särskilt för tolkade språk som måste köra en tolk för att köra programmet, vilket i huvudsak kräver att två applikationer måste köras samtidigt.
Samlade språk är programmeringsspråk på hög nivå där de läsbara källfilerna förvandlas till maskinkod som datorn kan läsa. Medan ett sammanställt språk lider mindre av en abstraktionsstraff än ett tolkat språk förlitar det sig fortfarande på förkompilerade bibliotek och automatiserade kompilatorfunktioner. Dessa element kan skada optimeringen av ett komplext program där prestanda är avgörande.
Användningen av programmeringsspråk på hög nivå har också underlättat användarvänlig programmering. Detta underlättas genom att lägga till standardiserade element till ett användargränssnitt som de flesta högnivåspråk ger. Istället för att utveckla anpassad kod för ett fönsterfönster eller gränssnittsknapp varje gång man behöver, kan bekanta element enkelt placeras i ett gränssnitt med bara några få kodrader. Detta tillåter program som slutanvändare kan lära sig lättare eller omedelbart kan bekanta sig med.
Användningen av termen "programmering på hög nivå" är relativt programmerarens erfarenhet. Det finns några mellanhandsspråk som en gång ansågs vara lågnivå men som nu inte är det. På samma sätt delar vissa högnivåaspekter aspekter med lågnivåspråk, vilket gör sudden mellan dem.