Zaawansowane programowanie funkcyjne 1000-2P00PF
Programowanie funkcyjne umożliwia abstrahowanie od szczegółów implementacyjnych i dzięki temu pozwala budować duże lub skomplikowane systemy programistyczne w sposób klarowny, zdyscyplinowany i ułatwiający matematyczne rozumowanie o ich własnościach.
W ramach laboratorium każdy z uczestników (ewentualnie w małych zespołach) zaimplementuje zaawansowany projekt używając narzędzi programowania Funkcyjnego, albo też dokona modyfikacji jakiegoś istniejącego zaawansowanego systemu i zweryfikuje wyniki. W tym roku do realizacji projektu zalecane są funkcyjne języki programowania kompilowane do bytekodu Javy (Scala, CAL, OCaml-Java), ale do negocjacji jest również język Haskell lub inne. Zarówno użyty język, biblioteki jak i temat projektu będą w każdym przypadku uzgodnione na podstawie pomysłów uczestnika i ewentualnie propozycji prowadzącego (ograniczona pula zadań inspirowanych przemysłem lub rozwojem kompilatora języka Dule).
Rodzaj przedmiotu
Założenia (lista przedmiotów)
Literatura
+ John Hughes, Why Functional Programming Matters, http://www.math.chalmers.se/~rjmh/Papers/whyfp.html
+ Chris Okasaki, Purely Functional Data Structures, http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
+ The Scala Programming Language, http://www.scala-lang.org/
+ The Business Objects Open Quark Framework for Java, http://labs.businessobjects.com/cal/
+ OCaml-Java project, http://ocamljava.x9c.fr/
+ http://caml.inria.fr/oreilly-book/
+ http://www.mimuw.edu.pl/~mikon/dule.html
Więcej informacji
Więcej informacji o poziomie przedmiotu, roku studiów (i/lub semestrze) w którym się odbywa, o rodzaju i liczbie godzin zajęć - szukaj w planach studiów odpowiednich programów. Ten przedmiot jest związany z programami:
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: