Programovací jazyk je prostředek pro zápisalgoritmů, jež mohou být provedeny napočítači. Zápis algoritmu ve zvoleném programovacím jazyce se nazýváprogram.
Programovací jazyk je komunikačním nástrojem meziprogramátorem, který v programovacím jazyce formuluje postup řešení daného problému, a počítačem, který program interpretuje technickými prostředky. Programovací jazyk je vlastně soubor pravidel pro zápis algoritmu, odborně řečeno se jedná o formální jazyk.
Programovací jazyky existují v řadě verzí a implementací, mluvíme někdy o dialektech programovacího jazyka. Existují také standardy pro programovací jazyky; pro jednotlivé implementace se často uvádí, kterému standardu vyhovuje.
První programovací jazyky existovaly ještě dříve než počítače. Už v 19. století se používaly programovatelnétkalcovské stavy nebo perforované papírové válce prosamohrající piána, které implementovaly to, co bychom dnes považovali za předchůdce doménově orientovaných programovacích jazyků. Začátkem20. století se již data uchovávala pomocíděrných štítků.
interpretované jazyky, které se pouzeinterpretují (z toho důvodu jsou pomalejší – proto většina jazyků má alespoň nějakou jinou možnost, pokud nejsou každopádně zpomalované jiným faktorem, jako třebashell)
interpretované jazyky, které se po spuštění za běhu programu překládají dostrojového kódu počítače (např. Java, pokud se použije systémJIT)
Toto členění není absolutní, řada programovacích jazyků existuje v implementaci jak interpretované, tak kompilované (například zmíněná Java). Navíc bývají oba postupy někdy kombinovány, tj. zdrojový kód je nejprve kompilován do mezikódu, jenž je poté interpretován.
Některé programovací jazyky byly vytvořeny především provýuku programování a algoritmického myšlení. Mezi takové jazyky patří např.Logo,Karel,Baltík,Petr. Nakonec prvotním důvodem vzniku jazykaPascal byla také výuka programování.
Existuje i „opačný pól“ – tzv.ezoterické jazyky, jejichž smyslem je zápis programu maximálně zkomplikovat; příkladem je jazykBrainfuck. Takové jazyky slouží spíše k pobavení a k demonstraci, co všechno je v programování možné. I v programovacích jazycích, které se používají v běžné praxi, existují soutěže, jejichž cílem je vytvořit maximálně nesrozumitelný kód (např.Obfuscated C Contest).
Dále existují programy a nástroje, které nejsou obvykle přímo označovány jakoprogramovací jazyky, ale přesto mají s programovacími jazyky mnoho společného. Většinou jde o komplexní systémy, jejichž účelem je něco jiného než tvorba obecných aplikací (např.sazba textu,kreslení obrázků, interakce uživatele s operačním systémem…) a programování slouží převážně k lepšímu zvládnutí obsluhy takového systému.
Některé tyto jazyky se svými specifickými vlastnostmi řadí meziskriptovací jazyky a jiné zase pro svůj převážně popisný charakter mají podobuznačkovacího jazyka.