Programowanie logiczne

Język wykładowy Polski
Semestr Letni
Status W ofercie
Opiekun Paweł Rychlikowski
Liczba godzin 30 (wyk.) 30 (ćw-prac.)
Rodzaj I2.T - teoria inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Tagi JP (języki programowania i logika)

Opis przedmiotu:

Logika towarzyszyła komputerom niemal od ich początku jako narzędzie wyrażające ich własności i umożliwiające dowodzenie tych własności. Idea użycia logiki jako samodzielnego języka programowania narodziła się nieco poźniej: w latach siedemdziesiątych XX wieku. Można ją podsumować za pomocą następujących ,,rownań'': program = zbior aksjomatow obliczenie = budowanie dowodu wynikania pewnego twierdzenia z tego zbioru aksjomatow Pierwszy realizujący tę ideę system automatycznego dowodzenia twierdzeń został nazwany Prologiem (od Programmation en Logic), od czasu jego powstania wiele zespołow badawczych pracowało nad uczynieniem z Prologu rzeczywiście przydatnego języka programowania, ktory umożliwiałby szybkie pisanie efektywnych aplikacji związanych ze sztuczną inteligencją, badaniami operacyjnymi, rozpoznawaniem językow naturalnych, translacją, automatycznym dowodzeniem twierdzeń i bazami danych. Podczas wykładu zostaną przedstawione teoretyczne podstawy programowania logicznego (powiemy między innymi o takich zagadnieniach jak operacyjna, teoriomodelowa i stałopunktowa semantyka programow logicznych), omowimy rownież Prolog, ze wszystkimi jego cechami wykraczającymi poza ideę czystego programowania w logice, umożliwiającymi pisanie efektywniejszych programow (w tej części wykład będzie krotką powtorką i rozszerzeniem materiału uczonego na Programowaniu oraz Metodach programowania). Sporo uwagi będzie poświęcone pragmatyce programowania logicznego i jego przykładowym zastosowaniom (ze szczegolnym uwzględnieniem sztucznej inteligencji). Omowimy bazujące na Prologu języki Mercury (jedna z najszybszych mutacji Prologa) oraz Goedel (jeden z wariantow Prologu z typami). Przedstawimy roznież sposoby łączenia językow logicznych z obiektowymi, funkcjonalnymi, wspołbieżnymi i imperatywnymi. Omowimy rownież podstawy programowania z więzami, paradygmatu, ktory z jednej strony sprawił, że programowanie logiczne zaczęło być używane w aplikacjach przemysłowych (w dziedzinie badań operacyjnych), a z drugiej daje wielkie możliwości pisania dużo efektywniejszych rozwiązań "łamigłowkowych" zadań, z ktorymi mieliście do czynienia na pracowni z programowania. Wykładowi będą towarzyszyć ćwiczenia połączone z pracownią. **UWAGA** Wykład najprawdopodobniej będzie odbywał się co dwa lata, ostatnia edycja była w roku akademickim 2005/2006. **Wymagania:** Programowanie lub Metody programowania, Logika dla informatyk ow