Seminarium: Systemy Rozproszone
20 grudnia 2001, godzina 12:15, sala 3120
Tomasz Zielonka t.zielonka@students.mimuw.edu.pl


Szablony XML/HTML zanurzone w funkcyjnym języku programowania

Wśród wielu narzędzi służących do przetwarzania szablonów webowych nie znalazłem takiego, który zaspokoiłby wszystkie moje potrzeby, a chcę dosyć dużo: prostoty, elastyczności, wysokiego poziomu abstrakcji, mechanizmów programowania generycznego, wczesnej wielopoziomowej kontroli błędów, dużej wydajności oraz elegancji.

Będąc coraz bardziej zafascynowany funkcyjnymi językami programowania, a w szczególności jedną odmianą ML'a - Objective Caml, wpadłem na pomysł, by spróbować stworzyć system przetwarzania szablonów, który pozwoli maksymalnie wykorzystać zalety tego paradygmatu programowania. Najprostszym sposobem osiągnięcia tego jest kompilowanie szablonów w jakiś sposób do docelowego języka (tu Ocamla) raz przed użyciem. To podejście, podobne do zastosowanego w Java Server Pages, ma swoje wady, ale w przypadku języka takiego jak OCaml szala przechyla się zdecydowanie na stronę zalet.

Zauważyłem wiele ciekawych własności tego rozwiązania, które pozytywnie wpływają na wydajność, elastyczność i poprawność, ale o tym na prezentacji.

Plan prezentacji

  1. Porównanie cech kilku dostępnych narzędzi do przetwarzania szablonów.
  2. Kilka słów o OCamlu z naciskiem na mechanizmy szczególnie przydatne w tym zastosowaniu: silny polimorficzny system typów, wnioskowanie typów (type inference), funkcje wyższego rzędu, domknięcia, etykietowane parametry funkcji, wydajność, może też funktory (raczej nie starczy czasu na wszystko).
  3. Omówienie porządanych cech systemu i możliwych sposobów realizacji.
  4. Demonstracja prototypu narzędzia, przykładowych szablonów, sposobu kompilacji do OCamla i działających programów.

Zródła

Zapraszam,
Tomek Zielonka