Programowanie deklaratywne - paradygmaty programowania

DECLARATIVE PROGRAMMING – PROGRAMMING PARADIGMS

2022L

Kod przedmiotu17N1-PRGDEKL
Punkty ECTS 5
Typ zajęć Ćwiczenia laboratoryjne
Wykład
Przedmioty wprowadzające
Wymagania wstępne
Opis ćwiczeń
Opis wykładówrzedstawienie deklaratywnego paradygmatu programowania na tle innych paradygmatów występujących we współczesnym programowaniu (programowanie imperatywne, obiektowe). Na programowanie deklaratywne składa się programowanie w logice i programowanie funkcyjne . Wykład zawiera podstawy teoretyczne programowania w logice: rezolucja w logice pierwszego rzędu, unifikacja termów, programy definitywne i rezolucja liniowa oraz podstawy teoretyczne programowania funkcyjnego: rachunek lambda bez typów (alfa-konwersja, beta-redukcja, własność Churcha-Rossera, definiowalność funkcji na liczbach naturalnych), podstawowe informacje na temat rachunku lambda z typami. ,ĆWICZENIA LABORATORYJNE:Praktyczne zapoznanie się z deklaratywnym sposobem programowania na przykładzie języka Prolog w przypadku programowania w logice oraz języka Haskell w przypadku programowania funkcyjnego. Prolog: elementy języka i budowa programu, porównywanie i unifikacja termów, operatory i funkcje arytmetyczne, mechanizm wnioskowania Prologu, reguły rekurencyjne, struktury listowe i ich przetwarzanie, modyfikacja mechanizmu wnioskowania. Haskell: zmienne i funkcje, typy danych, warunkowe definiowanie funkcji, dopasowanie do wzorca, definicje lokalne, listy i krotki, funkcje rekurencyjne, funkcje wyższych rzędów. Zwrócenie uwagi na symboliczny sposób przetwarzania oraz rolę rekursji w obu wymienionych językach. Omówienie przykładowych zastosowań programowania deklaratywnego.
Cel kształcenia
Literatura podstawowa1) U. Nillson, J. Małuszyński, Logic, Programming and Prolog., t. brak, John Willey & Sons, 1995, s. brak 2) W. Clocksin, C. Mellish, Prolog. Programowanie., t. brak, Helion, 2003, s. brak 3) G. Brzykcy, A. Meissner, Programowanie w Prologu i programowanie funkcyjne. Materiały do ćwiczeń., t. brak, Wydawnictwo Politechniki Poznańskiej, 1999, s. brak 4) G. Hutton, Programming in Haskell, t. brak, Cambridge University Press, 2007, s. brak
Literatura uzupełniająca
Uwagibrak