Teoria języków programowania

Teoria języków programowania (ang. programming language theory, PLT) – dziedzina informatyki teoretycznej zajmująca się analizą, charakteryzacją, klasyfikacją, projektowaniem i wdrażaniem języków programowania[1]. Ważniejszymi obszarami PLT są semantyki formalne (ang. formal semantics), teoria typów (ang. type theory), metaprogramowanie, konstrukcja kompilatorów. PLT jest związana także z językoznawstwem, matematyką i kognitywistyką.

Historia edytuj

Historia teorii języków programowania poprzedza rozwój samych języków programowania. Rachunek lambda, opracowany przez Alonzo Church i Stephena Cole Kleene w latach 30. XX wieku, jest uważany przez niektórych za pierwszy na świecie język programowania, mimo że miał on służyć jedynie modelowaniu obliczeń matematycznych, a nie programistom do opisywania algorytmów w systemach informatycznych[2].

Pierwszym wymyślonym językiem programowania był Plankalkül, zaprojektowany przez niemieckiego pioniera informatyki Konrada Zuse w latach 40. XX wieku, ale znany publicznie dopiero w 1972 r. (a wdrożony w 1998 r.). Natomiast pierwszym znanym i praktycznie powszechnie stosowanym wysokopoziomowym językiem programowania był Fortran, opracowywany w latach 1954–1957 przez zespół badaczy IBM pod przewodnictwem Johna Backusa. Użyteczność Fortranu doprowadziła do powołania komitetu naukowego w celu opracowania „uniwersalnego” języka komputerowego. Rezultatem ich wysiłków był ALGOL 58. Osobno John McCarthy z MIT opracował język programowania Lisp (oparty na rachunku lambda), pierwszy język mający pochodzenie akademickie, który znalazł zastosowanie praktyczne. Języki programowania stały się aktywnym tematem badań naukowych od lat 60. XX w. Kluczowe wydarzenia w historii teorii języków programowania:

Lata 50. XX w.
Lata 60. XX w.
Lata 70. XX w.
Lata 80. XX w.
Lata 90. XX w.

Główne obszary edytuj

Można wyróżnić kilka kierunków badań, które albo leżą w obrębie teorii języka programowania, albo które mają na nią głęboki wpływ. Nakładające się na siebie obszary obejmują:

Znane czasopisma i konferencje naukowe edytuj

  • ACM Transactions on Programming Languages and Systems (TOPLAS);
  • Journal of Functional Programming (JFP);
  • Journal of Functional and Logic Programming;
  • Higher-Order and Symbolic Computation;
  • Symposium on Principles of Programming Languages (POPL);
  • Programming Language Design and Implementation (PLDI);
  • International Conference on Functional Programming (ICFP);
  • International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA);
  • International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).

Przypisy edytuj

  1. Lambda the Ultimate [online], lambda-the-ultimate.org [dostęp 2020-04-01].
  2. Models Of Computation [online], wiki.c2.com, 2014 [dostęp 2020-04-01].
  3. C. Böhm, Introduction to the CUCH. In E. R. Caianiello (ed.), W. Gross, „Automata Theory”, 1966.