W ramach seminarium omowione zostaną klasyczne techniki i rozwiązania
stosowane w kompilatorach językow funkcyjnych takich jak Ocaml, SML, Scheme i
Haskell, jak rownież nowe osiągnięcia w dziedzinie implementacji językow
funkcyjnych. Wśrod omawianych tematow znajdą się:
* transformacje programow (m.in. translacja do CPS-u i wprowadzenie domknięć stosowane w kompilacji językow Scheme i SML)
* analiza statyczna i optymalizacja programow
* generowanie kodu pośredniego
* maszyny abstrakcyjne (m.in. ZINC (OCaml) oraz STG (Haskell))
* automatyczne zarządzanie pamięcią.
Wybrana liiteratura:
* Xavier Leroy. [ The ZINC experiment: an economical implementation of the ML language.](http://gallium.inria.fr/%7Exleroy/bibrefs/Leroy-ZINC.html) Technical report 117, INRIA, 1990.
* Andrew W. Appel. [ Compiling with continuations](http://www.cambridge.org/us/knowledge/isbn/item1116671/?site_locale=en_US). Cambridge University Press, 1992.
* Simon Peyton Jones. [Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine.](http://research.microsoft.com/apps/pubs/default.aspx?id=67083) Journal of Functional Programming 2(2), April 1992, pp. 127-202.
* Guy L. Steele. [RABBIT: A compiler for SCHEME. ](ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-474.pdf)Technical Report 474, Massachusetts Institute of Technology Cambridge, MA, USA 1978.
* J. Gregory Morrisett, David Walker, Karl Crary, Neal Glew.
[From system F to typed assembly
language](http://dl.acm.org/citation.cfm?id=319301.319345&coll=DL&dl=GUIDE&CFID=512058238&CFTOKEN=22547362).
ACM Trans. Program. Lang. Syst. 21(3): 527-568 (1999).