Proqramlaşdırma dili nəzəriyyəsi

**Proqramlaşdırma dili nəzəriyyəsi** — proqramlaşdırma dilləri kimi tanınan formal dillərin dizaynı, tətbiq olunması, təhlili, xarakteristikası və təsnifatı ilə məşğul olan kompüter elminin bir sahəsi. Proqramlaşdırma dili nəzəriyyəsi riyaziyyat, proqram təminatı mühəndisliyi və dilçilik kimi digər sahələrlə sıx bağlıdır. Sahənin bir sıra elmi konfransları və jurnalları mövcuddur.
## Tarixi
Müəyyən mənada proqramlaşdırma dili nəzəriyyəsinin tarixi hətta proqramlaşdırma dillərinin inkişafından da əvvələ təsadüf edir. 1930-cu illərdə Alonzo Çörç və Stiven Koul Klini tərəfindən hazırlanmış lambda hesablaması, bəziləri tərəfindən dünyanın ilk proqramlaşdırma dili hesab edilir, baxmayaraq ki, o, proqramçılar üçün kompüter sisteminə alqoritmləri təsvir etmək vasitəsi olmaq üçün yox, hesablamaları modelləşdirmək üçün nəzərdə tutulmuşdu. Bir çox müasir funksional proqramlaşdırma dilləri lambda hesablamaları üzərində "nazik örtük" təmin edən kimi təsvir edilmişdir və bir çoxu onun baxımından asanlıqla təsvir olunur.

Yaradılan ilk proqramlaşdırma dili 1940-cı illərdə Konrad Tsuze tərəfindən dizayn edilmiş, lakin 1972-ci ilə qədər ictimaiyyətə məlum olmayan (və 1998-ci ilə qədər tətbiq edilməmiş) Plankalkül idi. İlk geniş tanınan və uğurlu yüksək səviyyəli proqramlaşdırma dili 1954-1957-ci illərdə Con Bekusun rəhbərlik etdiyi IBM tədqiqatçıları qrupu tərəfindən hazırlanmış Fortran idi. FORTRAN-ın uğuru "universal" kompüter dili hazırlamaq üçün alimlər komitəsinin formalaşmasına səbəb oldu və nəticədə ALGOL 58 yaradıldı. Ayrı-ayrılıqda, MIT-dən Con Makkarti akademik mənşəli ilk dil olan Lisp-i yaratdı. Bu ilkin səylərin uğuru ilə proqramlaşdırma dilləri 1960-cı illərdə və sonrakı illərdə aktiv tədqiqat mövzusuna çevrildi.
## İstinadlar

## Əlavə ədəbiyyat
* Abadi, Martín and Cardelli, Luca. *A Theory of Objects*. Springer-Verlag.
* Michael J. C. Gordon. *Programming Language Theory and Its Implementation*. Prentice Hall.
* Gunter, Carl and Mitchell, John C. (eds.). *Theoretical Aspects of Object Oriented Programming Languages: Types, Semantics, and Language Design*. MIT Press.
* Harper, Robert. *[https://web.archive.org/web/20070627041059/https://www.cs.cmu.edu/~rwh/plbook/book.pdf Practical Foundations for Programming Languages]*. Draft version.
* Knuth, Donald E. (2003). *[http://www-cs-faculty.stanford.edu/~uno/cl.html Selected Papers on Computer Languages]*. Stanford, California: Center for the Study of Language and Information.
* Mitchell, John C. *Foundations for Programming Languages*.
* Mitchell, John C. *Introduction to Programming Language Theory*.
* O'Hearn, Peter. W. and Tennent, Robert. D. (1997). *[https://web.archive.org/web/20110719175135/http://www.eecs.qmul.ac.uk/~ohearn/Algol/algol.html Algol-like Languages]*. Progress in Theoretical Computer Science. Birkhauser, Boston.
* Pierce, Benjamin C. (2002). *[http://www.cis.upenn.edu/~bcpierce/tapl/main.html Types and Programming Languages]*. MIT Press.
* Pierce, Benjamin C. *Advanced Topics in Types and Programming Languages*.
* Pierce, Benjamin C. *et al.* (2010). *[http://www.cis.upenn.edu/~bcpierce/sf/ Software Foundations]*.
## Xarici keçidlər

*Lambda the Ultimate, a community weblog for professional discussion and repository of documents on programming language theory.
*Great Works in Programming Languages. Collected by Benjamin C. Pierce (University of Pennsylvania).
*Classic Papers in Programming Languages and Logic. Collected by Karl Crary (Carnegie Mellon University).
*Programming Language Research. Directory by Mark Leone.
*λ-Calculus: Then & Now by Dana S. Scott for the ACM Turing Centenary Celebration
*Grand Challenges in Programming Languages. Panel session at POPL 2009.