Aprogramozási nyelv aszámítástechnikában használt olyan, ember által is értelmezhető utasítások sorozata, amivel közvetlenül, vagy közvetve (például:gépi kódra fordítás után) közölhetjük a számítógéppel egy adott feladat elvégzésének módját.
ValószínűlegCharles Babbage készítette az elsőszámítógép-szerű gépet, melyreAda Lovelace írt különböző (assembly-szerű) programokat.
Alan Turing megalkotta aTuring-gép elméleti konstrukcióját, mely már a mai modern számítógép viselkedését írja le. A gépet egy program vezérli, melynek lefutását a kapott input befolyásolja.
Konrad Zuse a modern programnyelvek egyik úttörője, aki az általa kifejlesztett nyelv, aPlankalkül használatát már nagyjából úgy képzelte el, ahogy a programozási nyelveket napjainkban használjuk problémáink megoldására.
Az1940-es években, amikor elkészítették az első elektronikus számítógépet, programozókra volt szükség, akik a saját kezükkel működtették a gépeket. Ebben az időben a számítógépek hihetetlenül nagy méretűek és drágák voltak. A20. század végén bekövetkezett robbanásszerű elektrotechnikai fejlődés elősegítette afelhasználóbarát számítógépek elterjedését.
Az ezt követő fejlődés (tranzisztorok,integrált áramkörök éschipek) a számítógépeket sokkal megbízhatóbbá, könnyebben kezelhetővé tette, s a legkülönbözőbb programozási nyelvek jelentek meg.Ez vezetett az exponenciálisan növekvő fejlődéshez, amely azinternetet, a mindenütt előforduló számítógépeket eredményezte, és lehetővé tette az olyan könnyen elsajátítható nyelvek elterjedését, mint például aPython vagy aVisual Basic.
Ahogyan a számítógépek ára drámaian csökkent, úgy nőtt a programok jelentősége és komplexitása, aminek eredményeként a számítógép-időnél sokkal fontosabbá vált a fejlesztési idő.
A fejlődés következő állomását az (IDE) megjelenése jelentette, melyek csökkentették az idő-, és pénzráfordítást. A képernyő területei, melyek végrehajtják a programvezérlést, gyakran interaktívan átrendezhetőek. A kód-részleteket egy egérkattintással is előhívhatjuk. A munkát tehát előregyártott komponensek és újrafelhasználható kódokkal operáló eljáráskönyvtár teszik könnyebbé.
A korszerű nyelvek új fejlesztéseket tartalmaznak, mint például felhasználói jogok meghatározása; szabadon variálható, testhezálló telepítés és kinézet.
Azobjektumorientált programozás módszertana képes lényegesen csökkenteni a programok elkészítési idejét, a programkód olvashatóságát, de azok hatékonyságát is.
Lásd még:Programozási paradigma.
Alapvetően három kategóriába soroljuk a programozási nyelveket.
Agépi kód valójában nem nyelv, mivel az a gép számára közvetlenül értelmezhető adatsort jelenti. A gépi kódhoz legközelebb álló nyelv azassembly nyelv. Ha egyassembly vagymnemonik nyelv és az általa előállított gépi kód között egy-az-egy megfeleltetés van, akkor mondhatjuk, hogy az adott nyelv „gépi kód szintű”.
Agépi kódhoz, vagyis az adott számítógép saját nyelvéhez legközelebb álló nyelveket nevezzükassembly nyelveknek: ezen a nyelven a legnehezebb programot írni, mert azt teljesen aszámítógép architektúrájához alakítva, gépi logika szerint kell elkészíteni. Cserébe az assembly nyelven írt programok a leggyorsabbak.
Az assembly nyelven írt programot gépi kódra az „assembler” (fordítóprogram) fordítja le. (Ebből látható, hogy igazából az assembly is egyfordított nyelv, de mégsem soroljuk a fordított nyelvek közé, mivel a legtöbb esetben a „fordított nyelvek” az adott nyelvről assembly-re fordítanak (belsőleg), és utána azt alakítják át gépi kóddá.)
Minden egyesprocesszor-családnak saját assembly nyelve van (vagy nyelvei vannak).
Amagas szintű nyelvek esetén valamilyen absztrakció segítségével az emberi logikához vagy a problématérhez közelebb eső nyelven fejezzük ki a programunkat.