**Programmeerimiskeel** on süntaksi- ja semantikareeglite kogum arvutile programmi kirjutamiseks (programmeerimiseks).

Programmeerimiskeeli liigitatakse peamiselt toetatud programmeerimise paradigmade ja tüüpimise järgi.

Mõned programmeerimiskeeled on standardiseeritud.

Ajalugu
-------

 telefoniliinide ühenduskeskus 
Esimesed arvutid olid käsitsi programmeeritavad: et panna arvuti teistsugust ülesannet täitma, tuli see osaliselt lahti ühendada ja pisut teistmoodi kokku panna. Võrdle näiteks telefonikeskjaama kommutaatoriga.

1945 avaldas John von Neumann kaks olulist ideed, mis aitasid kaasa programmeerimiskeelte tekkele: 

* arvuti riistvara peab olema lihtne; tarkvara peab juhtima riistvara tööd, võimaldades arvutit kiiremini programmeerida;
* *conditional control transfer* pani aluse alamprogrammidele – koodilõikudele, millele programm saab mistahes sammul juhtimise üle anda, ning teekidele; programmi hargnemise võimaldamiseks peab programmitekst sisaldama tingimuslauseid (näiteks tingimussiirdelauseid või korduslauseid).

Kõigepealt arenesid masinakeeled ja seejärel assemblerkeeled, mis olid põhimõtteliselt needsamad masinakeeled inimsõbralikumas vormis.

1949 loodi programmeerimiskeel Short Code, mille kasutamiseks tuli programmeerijal endal esitada programmitekst nullide ja ühtede jadana. Seda nimetatakse masinakoodiks ehk masinakeeleks.[*viide?*]

1957 ilmus esimene laiemat kasutust leidnud programmeerimiskeel Fortran koos esimese kompilaatoriga, mis muutis programmeerimise palju lihtsamaks, sest programmeerija ei pidanud programmi enam ise masinakeelde teisendama. See keel oli lihtne ja tänapäeva standardite järgi piiratud: sisaldas ainult IF-, DO- ja GOTO-lauset, kuigi seegi oli väga suur samm edasi. Fortranist said alguse ka praegu kasutatavad andmetüübid: täis-, naturaal- ja ujukomaarvud. 

Fortran oli küll hea numbritega töötamiseks, aga mitte andmete sisestamiseks ja väljastamiseks, mida oli vaja äritarkvara loomiseks. Sellepärast hakati arendama COBOLit, mille ehitus pidas silmas lihtsust ja arusaadavust, sisaldades ainult andmetüüpe numbrite ja teksti jaoks. Lisaks oli võimalus rühmitada muutujaid massiividesse ja kirjetesse.

1958 loodi Massachusettsi Tehnoloogiainstituudis keel Lisp, mis oli mõeldud tehisintellekti uurimiseks ja arendamiseks. Seda võimaldab keele eriline omadus: ainuke andmetüüp on loend, ka programm koosneb loendite hulgast. Tänu sellele on võimalik kirjutada programme, mis muudavad iseend töö käigus.

Eesti keeleruumis
-----------------

Paljud programmeerimiskeelte keelenditest põhinevad inglise keelel. On olemas ka teiste keelte, näiteks eesti keele põhjal loodud programmeerimiskeeli.

Programmeerimiskeelte loend
---------------------------

* ActionScript
* Ada
* Algol-60
* Assemblerkeeled
* APL
* AWK
* Bash
* Batch
* BASIC
* Befunge
* Brainfuck
* C
* C++
* C#
* C--
* COBOL
* Common Lisp
* Cosmos
* Dis
* Elixir
* Erlang
* Fortran
* Game Maker Language (GML)
* Haskell
* Haxe
* INTERCAL
* Java
* JavaScript
* Lisp
* Malbolge
* Pascal
* Perl
* PHP
* PL/I
* PostScript
* Prolog
* Python
* R
* Ruby
* Scala
* Scheme
* Scratch
* Simula
* Smalltalk
* Tcl
* Unlambda
* Vala
* Visual Basic
* WMLScript
* X++

Vaata ka
--------

* Programmeerimise paradigma

Viited
------

1. ↑  Projekt "Eestikeelne programmeerimiskeel" ehk EKP