Szukamy odważnej załogi gotowej na niebezpieczną wyprawę. Praca ciężka, warunki trudne, wynagrodzenie marne, a szanse na powodzenie wątpliwe. W przypadku sukcesu -- chwała i uznanie.
W ramach projektu rozwijamy język programowania Fram, łączący efekty algebraiczne z rozbudowanym mechanizmem niejawnych i nazwanych parametrów. Główne zadanie polega na zbootstrapowaniu kompilatora, czyli napisaniu kompilatora języka Fram w samym Framie. Oprócz tego istnieje szereg pomniejszych zadań związanych ze stworzeniem ekosystemu wokół języka (biblioteka standardowa, wtyczki do popularnych edytorów, serwer języka, debugger, itp.) oraz rozwojem już dość dojrzałego pomocniczego interpretera języka napisanego w OCamlu. Podczas tej drogi zetkniemy się z m.in. następującymi zagadnieniami:
- projektowanie języków programowania,
- projektowania i analiza systemów typów,
- projektowanie architektury kompilatorów,
- programowanie z efektami algebraicznymi,
- kompilowanie języków funkcyjnych,
- kompilowanie zaawansowanych mechanizmów sterowania,
- generowanie kodu niskopoziomowego.
Praca nad projektem będzie miała charakter zespołowy. Student, po przydzieleniu zadania ustala koncepcję implementacji, która później jest wspólnie omawiana podczas spotkania projektowego. Opracowany kod oraz dokumentacja projektu będzie podlegać recenzji ze strony prowadzącego oraz innych studentów.
Przedmiot zalicza wymaganie projektu zespołowego. Można uczestniczyć w nim wielokrotnie.