To tylko jedna z 52 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Języki i paradygmaty
programowania (II)
Wykład V
Prolog. Podstawy
Plan wykładu
Programowanie deklaratywne
Obiekty i relacje
Fakty i reguły w Prologu
Składnia
Unifikacja
Rezolucja
Programowanie imperatywne
Program jest
sekwencją
poleceń
zmieniających
krok po kroku
stan maszyny, aŜ
do uzyskania
Ŝądanego wyniku
Algorytm
Programowanie deklaratywne
Język deklaratywny - jest to język
programowania, w którym programista zamiast
definiowania sposobu rozwiązania, czyli
sekwencji kroków prowadzących do uzyskania
wyniku, opisuje samo rozwiązanie.
Programowanie w tych językach polega zatem na
opisywaniu tego co nas interesuje a nie jak to
zrobić.
Znalezienie odpowiedniego sposobu na obliczenie
rozwiązania oraz wykonanie obliczeń jest
zadaniem środowiska uruchomieniowego lub
interpretera danego języka.
Języki deklaratywne
Języki deklaratywne nie nadają się do pisania
kompletnej aplikacji biznesowej, tzn. teoretycznie
jest to moŜliwe, ale nie po to zostały one
zaprojektowane.
Do czego wiec są? Języki te szczególnie są
uŜyteczne wszędzie tam, gdzie stworzenie
algorytmu jest trudne. Znany jest problem, znane
są warunki jakie muszą być spełnione i pewne
zaleŜności a mimo to ułoŜenie algorytmu jest
kłopotliwe.
Języki deklaratywne a sztuczna
inteligencja
Do klasy zagadnień nie poddających się
łatwemu opisowi algorytmicznemu, takich w
których wiemy co chcemy zrobić, ale nie
wiemy dość dobrze jak, naleŜy m.in.
(szeroko rozumiana) sztuczna inteligencja.
Prolog
Słowo „prolog” pochodzi od sformułowania
programmation en logique co w języku
francuskim oznacza programowanie w
logice. Prolog został stworzony w 1971 roku
przez Alaina Colmeraurera i Phillipe’a
Roussela.
Główne obszary zastosowań
Prologa
logika matematyczna (automatyczne
dowodzenie twierdzeń);
przetwarzanie języka naturalnego;
symboliczne rozwiązywanie równań;
sztuczna inteligencja;
przechowywanie i przetwarzanie danych.
Obiekty i relacje
Prolog to język programowania uŜywany do
rozwiązywania problemów dotyczących
obiektów i relacji między nimi.
Jaś ma ksiąŜkę.
Relacja między obiektem Jaś a obiektem
ksiąŜka.
Obiekty w języku obiektowym
Stan
Zachow
anie
Obiekt w ujęciu języków obiektowych jest bardzo podobny do
obiektów świata rzeczywistego: posiada stany (cechy) i
przypisane jemu „zachowanie”. Taki obiekt przechowuje
swoje stany w zmiennych zwanych polami, a jego
zachowaniem sterują metody.
Obiekty w Prologu
Obiekt w Prologu ma inne znaczenie niŜ w
programowaniu obiektowym. W Prologu
obiekty to byty, które moŜna opisać
termami.
Obiekt w Prologu
Nie definiujemy z czego się on składa i co
moŜna z nim zrobić (jak w programowaniu
obiektowym), ale jaki jest. Dodatkowo, dla
kaŜdego obiektu definiujemy relacje jakim
obiekt ten podlega.
Przy pomocy obiektów opisujemy
interesujący nas wycinek świata. Działanie
programu prologowego przejawia się
moŜliwością stawiania pytań związanych z
uprzednio opisanym światem.
Fakty w Prologu
Fakty:
wieksze(arbuz, jablko).
wieksze(jablko, sliwka).
(…)
… (obiektu) moŜe
być ujęta w apostrofy, wówczas moŜe się
zacząć od duŜej litery, np. jak w predykacie:
lubi(‘Janek’, lody).
Zmienna
Zmienna jest ciągiem znaków utworzonym z
małych i duŜych liter, cyfr i znaku
podkreślenia z zastrzeŜeniem, ze pierwszym
znakiem musi być duŜa litera lub znak
podkreślenia, np. X, Y, Kto, _123, X_1_2.
Zmienna anonimowa
?- wieksze(_, sliwka).
Zmienna anonimowa to pojedynczy znak…
… lub jej braku, według
następujących zasad:
1. Jeśli cel jest zbiorem pustym, zwróć prawdę.
2. Jeśli nie ma głów reguł lub faktów unifikujących
się z rozwaŜanym wyraŜeniem, zwróć fałsz.
3. W przypadku niepowodzenia (otrzymanie
wartości fałsz), wróć do takiego miejsca, w którym
stosując rezolucje moŜesz uzyskać inne wyraŜenie
i ponów cały proces. Zasada ta nazywana jest
nawracaniem (ang. backtracking)
Przykład
f…
… litery. Zmienne zaczynają
się od duŜej litery. KaŜdy fakt, reguła oraz
zapytanie muszą być zakończone kropką.
Składnia
wieksze(arbuz, jablko).
Predykat
Argumenty
Nazwę relacji znajdującą się przed nawiasem
nazywamy predykatem.
Nazwy obiektów występujących w
nawiasach nazywamy argumentami.
Składnia
Reguła:
wieksze(X,Y) :- wieksze(X,Z),wieksze(Z,Y).
W definicji reguły dwuznak :- oznacza
„jeŜeli”. W treści…
... zobacz całą notatkę
Komentarze użytkowników (0)