A magas szintű programozási nyelv olyan programozási nyelv , amelyet a programozó gyorsaságára és egyszerű használatára terveztek . A magas szintű nyelvek fő jellemzője az absztrakció , vagyis olyan szemantikai konstrukciók bevezetése, amelyek röviden leírják az olyan adatstruktúrákat és az azokon végzett műveleteket , amelyek leírása gépi kódban (vagy más alacsony szintű programozási nyelvben ) nagyon jó hosszú és nehezen érthető.
A magas szintű programozási nyelveket az algoritmusok lényegétől való platformfüggetlenségre tervezték. A platformtól való függés az eszközprogramok felé tolódik el – a fordítók , amelyek magas szintű nyelven írt szöveget elemi gépi parancsokká (utasításokká) fordítanak. Ezért minden platformhoz egy platform-egyedi fordítót fejlesztenek ki minden egyes magas szintű nyelvhez, például a Delphiben írt szöveget az x86 család mikroprocesszoraihoz tartozó elemi utasításokká fordítják le .
Így a magas szintű nyelvek nem csak az összetett szoftverproblémák megoldásának megkönnyítésére törekednek, hanem a szoftverek portolásának egyszerűsítésére is . A különféle fordítók és tolmácsok használata lehetővé teszi a magas szintű nyelveken írt programok számára, hogy különféle operációs rendszerekkel , programozható eszközökkel és berendezésekkel kommunikáljanak, és ideális esetben nem szükséges a forráskód módosítása (magas szintű nyelven írt szöveg ) bármilyen platformra.
A magas szintű nyelvek ilyenfajta leválasztása a számítógép hardveres megvalósításától , számos előny mellett, hátrányokkal is jár. Különösen nem teszi lehetővé egyszerű és pontos utasítások létrehozását a használt berendezésekhez. A magas szintű nyelveken írt programok könnyebben érthetők a programozó számára, de kevésbé hatékonyak, mint az alacsony szintű nyelveken írt társaik . Ennek egyik következménye az volt , hogy számos modern professzionális, magas szintű programozási nyelvet kiegészítettek egy-egy alacsony szintű nyelv (assembly language ) támogatásával.
Példák: C++ , C# , Delphi , Fortran , Java , JavaScript , Lisp , Pascal , PHP , továbbá Ruby , Python , Perl , amelyeket néha szupermagas szintűnek is neveznek . A magas szintű nyelvek általában képesek összetett adatstruktúrákkal dolgozni. A legtöbbjük integrált támogatással rendelkezik a karakterlánctípusokhoz , objektumokhoz , fájl I/O műveletekhez stb.
Az első magas szintű programozási nyelv a Plankalkül számítógépes nyelv , amelyet Konrad Zuse német mérnök fejlesztett ki 1942-1946 között . Fordító azonban 2000-ig nem létezett hozzá. A világ első magas szintű nyelvi fordítója a PP (Programming Program), más néven PP-1, amelyet 1954-ben sikeresen teszteltek. A PP-2 fordító (1955, a 4. fordító a világon) már optimalizált, és már tartalmazta saját betöltőjét és hibakeresőjét, szabványos eljárások könyvtárát, valamint a PP fordítót a Strela-4 számítógéphez . linkert (linkert) tartalmazott a modulokból. A magas szintű nyelvek széles körű használata azonban a Fortran megjelenésével és a nyelv fordítóprogramjának létrehozásával kezdődött ( 1957 ).
2018-ban a TIOBE Software szerint a Java programozási nyelv a vezető .
Széles körben elterjedt az a vélemény, hogy a magas szintű nyelvű programokat egyszer meg lehet írni, majd bármilyen típusú számítógépen felhasználni. A valóságban ez csak azokra a programokra igaz, amelyek keveset kommunikálnak az operációs rendszerrel , például számításokat vagy adatfeldolgozást végeznek. A legtöbb interaktív (és még inkább multimédiás) program rendszerhívásokat használ , amelyek az operációs rendszertől függően nagyon eltérőek. Például a grafikák számítógép képernyőjén való megjelenítéséhez a Microsoft Windows programok olyan Windows API -funkciókat használnak , amelyek eltérnek a POSIX szabványt támogató rendszereken használtaktól . Leggyakrabban az X szerver programozási felületét használják erre a célra .
A mai napig számos szoftverkönyvtárat hoztak létre (például a Qt könyvtárat vagy a wxWidgeteket ), amelyek elrejtik a különböző operációs rendszerek alkalmazási programok elől történő rendszerhívásainak következetlenségeit . Az ilyen könyvtárak azonban általában nem teszik lehetővé az adott operációs rendszerek összes funkciójának teljes körű használatát.
Új trend a valamivel magasabb szintű programozási nyelvek megjelenése (ultra-magas szintű, nem tévesztendő össze az ultra -magas szinttel ). Az ilyen nyelveket az alkalmazott felhasználásra orientált további struktúrák és objektumok jelenléte jellemzi. Az alkalmazásobjektumok viszont minimális konfigurációt igényelnek paraméterek formájában, és azonnal használatra készek. Az ultra-magas szintű programozási nyelvek használata csökkenti a szoftverfejlesztésre fordított időt, és javítja a végtermék minőségét, ami szintén a forráskódok mennyiségének csökkentésének köszönhető.