Wat is programmeren op hoog niveau?
Programmeren op hoog niveau omvat het schrijven van een computerprogramma in een taal die voorkomt dat de programmeur rechtstreeks te maken krijgt met de hardware van de specifieke computer die wordt geprogrammeerd. Deze abstractie stelt de programmeur in staat om zich meer te concentreren op het programmaontwerp, de flow en de functionaliteit en minder op het opstellen van basissysteembronnen om die doelen te bereiken. Een programmeertaal op hoog niveau kan geheugenbeheer of invoer en uitvoer verwerken op een manier die de programmeur alleen nodig heeft om het concept te begrijpen en niet de hardware-specifieke kenmerken van een bepaald systeem. In tegenstelling tot programmeren op hoog niveau is programmeren op laag niveau, waarbij er weinig of geen scheiding is tussen de geschreven computercode en de acties die de computer uitvoert.
De ontwikkeling van programmeertalen op hoog niveau kwam tegemoet aan de behoefte aan door mensen leesbare broncodebestanden die gemakkelijk konden worden begrepen en gewijzigd. Door oplossingen in natuurlijke taal te gebruiken, wordt broncode op hoog niveau veel leesbaarder dan assembleertaal of andere machinetalen. Naarmate de omvang van computerprogramma's vorderde, werd de uitvoerbaarheid van het schrijven van volledige programma's in lagere talen minder haalbaar.
In ruil voor programmeren in een taal die leesbaar is voor mensen en geen kennis van hardware op laag niveau vereist, is er een concept dat bekend staat als een abstractiestraf. Dit beschrijft de verhoogde vereisten in verwerkingskracht, geheugengebruik en andere soorten overhead die nodig zijn om het uiteindelijke programma uit te voeren. Dit geldt met name voor geïnterpreteerde talen die een tolk moeten uitvoeren om het programma uit te voeren, waarbij in wezen vereist is dat twee toepassingen tegelijkertijd moeten worden uitgevoerd.
Gecompileerde talen zijn programmeertalen op hoog niveau waarin de leesbare bronbestanden worden omgezet in machinecode die de computer kan lezen. Hoewel een gecompileerde taal minder onder een abstractieboete lijdt dan een geïnterpreteerde taal, is deze nog steeds afhankelijk van vooraf gecompileerde bibliotheken en geautomatiseerde compilerfuncties. Deze elementen kunnen schadelijk zijn voor de optimalisatie van een complex programma waarin prestaties van vitaal belang zijn.
Het gebruik van programmeertalen op hoog niveau heeft ook gebruiksvriendelijk programmeren eenvoudiger gemaakt. Dit wordt vergemakkelijkt door het gemak van het toevoegen van gestandaardiseerde elementen aan een gebruikersinterface die de meeste talen op hoog niveau bieden. In plaats van het ontwikkelen van aangepaste code voor een raamsysteem of een interfaceknop telkens wanneer er een nodig is, kunnen vertrouwde elementen eenvoudig in een interface worden geplaatst met slechts een paar regels code. Dit maakt programma's mogelijk waarmee eindgebruikers gemakkelijker kunnen leren of waarmee ze onmiddellijk vertrouwd kunnen zijn.
Het gebruik van de term "programmeren op hoog niveau" is gerelateerd aan de ervaring van de programmeur. Er zijn een aantal intermediaire talen die ooit als laag-niveau werden beschouwd, maar dat nu niet zijn. Evenzo delen sommige talen op hoog niveau aspecten met talen op laag niveau, waardoor de lijn tussen hen vervaagt.