Implementacja języków funkcyjnych
Semestr zimowy 2012 |
Dariusz Biernacki |
Wtorek 12:15-14:00 |
Sala 105 |
3 ECTS |
Seminarium poświęcone jest technikom i rozwiązaniom
stosowanym w kompilatorach języków funkcyjnych takich jak
Haskell, Ocaml, Scheme i SML. Omawiane tematy obejmują:
algorytmy rekonstrukcji typów, analizę statyczną oraz
optymalizację kodu, transformacje programów, języki
pośrednie oraz maszyny wirtualne.
|
Literatura
- Haskell
- OCaml
- Scheme
- SML
[AJ89]
|
Andrew W. Appel and Trevor
Jim.
Continuation-passing, closure-passing style. The
In Proceedings of the 16th ACM Symposium on
Principles of Programming Languages, pp. 293-302,
Austin, Texas, January 1989.
|
[A92]
|
Andrew
W. Appel.
Compiling with continuations. Cambridge University Press,
1992.
|
[K07]
|
Andrew Kennedy.
Compiling with continuations, continued. In
Proceedings of the 12th ACM SIGPLAN International
Conference on Functional Programming, pp. 177-190,
Freiburg, Germany, October 2007.
|
- Inne
[R72]
|
John Reynolds.
Definitional interpreters for higher-order programming
languages. Higher-Order and Symbolic
Computation, 11(4):363–397, 1998.
|
[ABDM03]
|
Mads Sig Ager, Dariusz Biernacki, Olivier Danvy
and Jan
Midtgaard. A
functional correspondence between evaluators and
abstract machines. In Proceedings of the 5th
ACM-SIGPLAN International Conference on Principles
and Practice of Declarative Programming, pp. 8-19,
Uppsala, Sweden, August 2003.
|
[ADM04]
|
Mads Sig Ager, Olivier Danvy and Jan
Midtgaard.
A functional correspondence between call-by-need
evaluators and lazy abstract
machines. Information Processing Letters,
90(5):223-232, 2004.
|
[LLVM]
|
The LLVM Compiler Infrastructure Project.
|
[Kal]
|
Kaleidoscope: Implementing a Language with LLVM in Objective Caml.
|
|
Terminarz
Data |
Temat |
Literatura |
Prelegent |
02.10.2012 |
Spotkanie organizacyjne |
|
|
09.10.2012 |
Rachunek lambda i maszyny abstrakcyjne |
[PJ87]:2-3, [FF03]:1-7, [L02] |
Dariusz Jackowski |
16.10.2012 |
Seminarium odwołane |
|
|
23.10.2012 |
Ewaluatory dla języków funkcyjnych |
[R72], [ABDM03], [ADM04] |
Piotr Polesiuk |
30.10.2012 |
Grafowa reprezentacja programów |
[PJ87]:10-12 |
Marcin Januszkiewicz |
06.11.2012 |
Lambda lifting, superkombinatory i maszyna G |
[PJ87]:13-19 |
Paweł Murias |
20.11.2012 |
The Glasgow Haskell Compiler |
[MPJ03] |
Wojciech Jedynak |
27.11.2012 |
The Spineless Tagless G-machine |
[PJ92] |
Wojciech Jedynak |
04.12.2012 |
The Glasgow Haskell Compiler, c.d. |
|
Maciej Kotowicz |
11.12.2012 |
Maszyna abstrakcyjna ZINC |
[L90] |
Krzysztof Sakwerda |
18.12.2012 |
Implementacja języka OCaml |
[L90] |
Damian Bogel |
08.01.2013 |
Wprowadzenie do LLVM |
[LLVM] |
Krystian Bacławski |
15.01.2013 |
LLVM i Ocaml |
[Kal] |
Krystian Bacławski |
22.01.2013 |
Kompilacja z użyciem kontynuacji |
[AJ89], [A92] |
Marek Imiełowski |
29.01.2013 |
Kompilacja z użyciem kontynuacji, c.d. |
[A92], [K07] |
Paweł Wieczorek |
|