prolog. programowanie pełna wersja.pdf
(
7463 KB
)
Pobierz
4
Prolog. Programowanie
Typowe zastosowania odci8cia.................................................................................80
Potwierdzanie wyboru reguły.............................................................................80
U5ycie odci8cia z predykatem fail ......................................................................84
Ko7czenie generowania mo5liwych rozwi4za7 i ich sprawdzanie ..........................86
Niebezpiecze7stwa wynikaj4ce ze stosowania odci8cia ..............................................89
Rozdział 5. Wej&cie i wyj&cie.............................................................................91
Czytanie i pisanie termów........................................................................................92
Czytanie termów...............................................................................................92
Pisanie termów .................................................................................................93
Czytanie i pisanie znaków .......................................................................................96
Czytanie znaków...............................................................................................96
Pisanie znaków.................................................................................................97
Wczytywanie zda7..................................................................................................98
Czytanie z plików i pisanie do plików.....................................................................101
Otwieranie i zamykanie strumieni.....................................................................102
Zmiana bie54cego strumienia wej+ciowego i wyj+ciowego..................................103
Konsultowanie................................................................................................104
Deklarowanie operatorów......................................................................................105
Rozdział 6. Predykaty wbudowane ...................................................................107
Wprowadzanie nowych klauzul..............................................................................107
Sukces i pora5ka...................................................................................................109
Klasyfikacja termów .............................................................................................110
Przetwarzanie klauzul jako termów ........................................................................111
Tworzenie składników struktur i si8ganie do nich ....................................................114
Wpływ na nawracanie ...........................................................................................118
Tworzenie celów zło5onych...................................................................................119
Równo+%..............................................................................................................122
Wej+cie i wyj+cie..................................................................................................122
Obsługa plików.....................................................................................................124
Wyliczanie wyra5e7 arytmetycznych......................................................................124
Porównywanie termów..........................................................................................126
Badanie działania Prologu .....................................................................................127
Rozdział 7. Przykładowe programy ...................................................................129
Sortowany słownik w formie drzewa......................................................................129
Przeszukiwanie labiryntu.......................................................................................132
Wie5e Hanoi.........................................................................................................135
Program magazynowy...........................................................................................136
Przetwarzanie list..................................................................................................137
Zapis i przetwarzanie zbiorów................................................................................140
Sortowanie...........................................................................................................142
U5ycie bazy danych..............................................................................................145
random ..........................................................................................................145
gensym ..........................................................................................................146
findall ............................................................................................................147
Przeszukiwanie grafów..........................................................................................149
Odsiej Dwójki i odsiej Trójki.................................................................................153
Ró5niczkowanie symboliczne ................................................................................155
Odwzorowywanie struktur i przekształcanie drzew..................................................157
Przetwarzanie programów .....................................................................................160
Literatura .............................................................................................................163
Spis treci
5
Rozdział 8. Usuwanie błdów w programach prologowych.................................165
Układ programów .................................................................................................166
Typowe bł8dy.......................................................................................................168
@ledzenie programu...............................................................................................171
@ledzenie i punkty kontrolne..................................................................................177
Sprawdzanie celu ............................................................................................179
Sprawdzanie przodków....................................................................................180
Zmiana poziomu +ledzenia...............................................................................181
Zmiana sposobu spełnienia celu........................................................................182
Inne opcje ......................................................................................................183
Podsumowanie ...............................................................................................184
Poprawianie bł8dów..............................................................................................184
Rozdział 9. U-ycie reguł gramatycznych w Prologu ...........................................187
Parsowanie...........................................................................................................187
Problem parsowania w Prologu ..............................................................................190
Notacja reguł gramatyki ........................................................................................194
Dodatkowe argumenty ..........................................................................................196
Dodatkowe warunki..............................................................................................199
Podsumowanie .....................................................................................................201
Przekształcanie j8zyka na logik8.............................................................................202
Ogólniejsze zastosowanie reguł gramatyki ..............................................................204
Rozdział 10. Prolog a logika...............................................................................207
Krótkie wprowadzenie do rachunku predykatów......................................................207
Posta% klauzulowa.................................................................................................210
Zapis klauzul........................................................................................................215
Rezolucja i dowodzenie twierdze7..........................................................................216
Klauzule Horna ....................................................................................................220
Prolog..................................................................................................................220
Prolog i programowanie w logice ...........................................................................222
Rozdział 11. Projekty w Prologu.........................................................................225
Łatwiejsze projekty...............................................................................................225
Projekty zaawansowane ........................................................................................227
Dodatek A Odpowiedzi do niektórych 1wicze2..................................................231
Dodatek B Klauzulowa posta1 programów .......................................................235
Dodatek C Przeno&ne programy w standardowym Prologu................................241
Przeno+no+% standardu Prologu ..............................................................................241
Ró5ne implementacje Prologu................................................................................242
Czego si8 wystrzega% ............................................................................................243
Definicje wybranych predykatów standardowych ....................................................244
Przetwarzanie znaków.....................................................................................245
Dyrektywy .....................................................................................................247
Wej+cie i wyj+cie strumieniowe........................................................................247
Ró5ne ............................................................................................................249
Dodatek D Ró-ne wersje Prologu.....................................................................251
Dodatek E Dialekt edynburski.........................................................................255
Dodatek F micro-Prolog ..................................................................................263
Skorowidz......................................................................................267
Rozdział 1.
Wprowadzenie
Prolog
Prolog to komputerowy jzyk programowania. Jego pocztki sigaj roku 1970, od tego
czasu u ywano go w aplikacjach zwizanych z przetwarzaniem symbolicznym, w ta-
kich dziedzinach, jak:
relacyjne bazy danych,
logika matematyczna,
rozwizywanie problemów abstrakcyjnych,
przetwarzanie jzyka naturalnego,
automatyzacja projektowania,
symboliczne rozwizywanie równa&,
analiza struktur biochemicznych,
ró ne zagadnienia z dziedziny sztucznej inteligencji.
Osoby dopiero zaczynajce swoj przygod z Prologiem s zaskoczone tym, e pisanie
programu w Prologu nie polega na opisywaniu algorytmu, jak to ma miejsce w trady-
cyjnych jzykach programowania. Zamiast tego programi)ci Prologu zajmuj si ra-
czej formalnymi relacjami i obiektami zwizanymi z danym problemem, badajc, które
relacje s „prawdziwe” dla szukanego rozwizania. Tak wic Prolog mo e by. uwa any
za jzyk
opisowy
i
deklaratywny
. Programowanie w Prologu polega przede wszystkim
na opisaniu znanych faktów i relacji dotyczcych problemu, w mniejszym stopniu na
podawaniu kolejnych kroków algorytmu. Kiedy programujemy w Prologu, sposób
pracy komputera cz)ciowo wynika z deklaratywnej semantyki Prologu, cz)ciowo
z tego, e Prolog na podstawie danego zbioru faktów mo e wnioskowa. nowe fakty,
a jedynie cz)ciowo na podstawie jawnie podanych przez programist instrukcji ste-
rujcych.
12
Prolog. Programowanie
Obiekty i relacje
Prolog to komputerowy jzyk programowania u ywany do rozwizywania proble-
mów dotyczcych
obiektów
i
relacji
midzy nimi.
Kiedy na przykład mówimy, e „Jan ma ksi k”, informujemy, e istnieje relacja
własno)ci midzy obiektem „Jan” a obiektem „ksi ka”. Co wicej, jest to relacja upo-
rzdkowana: Jan ma ksi k, ale ksi ka nie ma Jana. Je)li zadajemy pytanie „Czy Jan
ma ksi k?”, staramy si pozna. relacj. Wiele problemów mo emy opisa., wskazu-
jc obiekty i ich relacje. Rozwizanie problemu polega na za daniu od komputera in-
formacji o obiektach i relacjach, które mo na z naszego programu wywnioskowa..
Nie wszystkie relacje jawnie okre)laj wszystkie obiekty, które ich dotycz. Kiedy na
przykład mówimy „Bi uteria jest cenna”, oznacza to, e istnieje relacja „bycia cen-
nym” dotyczca bi uterii. Nie wiadomo, dla kogo bi uteria jest cenna ani dlaczego.
Wszystko zale y od tego, co zamierzamy wyrazi.. Je)li tego typu relacje bdziemy
modelowa. w Prologu, to liczba podawanych szczegółów zale e. bdzie od tego, ja-
kiej odpowiedzi oczekujemy od komputera.
Mówimy tutaj o obiektach, ale nie nale y myli. tego z popularn metodologi pro-
gramowania — programowaniem obiektowym. W programowaniu obiektowym obiekt
to struktura danych, która mo e dziedziczy. pola i metody z hierarchii klas, do której
sama nale y. Wprawdzie pocztki programowania obiektowego mo na datowa. na
)rodek lat 60., lecz popularno). zyskało w latach 80. i 90., kiedy to pojawiły si takie
jzyki jak Smalltalk-80, C++ czy Java.
Z kolei Prolog ewoluował niezale nie od pocztku lat 70., za) jego zacztkiem były
postpy programowania w logice. Prologu nie nale y porównywa. z jzykami obiek-
towymi, takimi jak C++ i Java, gdy Prolog słu y do całkiem innych zada& i całkiem
inne znaczenie ma w nim słowo „obiekt”. Dziki elastyczno)ci Prologu mo liwe jest
napisanie w nim programu, który bdzie interpretował podobny do Prologu jzyk obiek-
towy, ale to ju całkiem inne zagadnienie. Reasumujc, kiedy mówimy o obiektach
w Prologu, nie chodzi nam o struktury danych dziedziczce pola i metody z klasy, ale
o byty, które mo na opisa. termami.
Prolog stanowi praktyczn i wydajn implementacj szeregu aspektów „inteligentnego”
wykonywania programu: braku determinizmu, równoległo)ci i wywoływania proce-
dur według wzorca. Prolog zawiera ujednolicon struktur danych,
term
, na bazie któ-
rej tworzone s wszystkie dane oraz same programy Prologu. Program prologowy
składa si ze zbioru klauzul, a ka da klauzula to albo fakt opisujcy pewn informa-
cj, albo reguła mówica, jak rozwizanie mo na powiza. z danymi faktami. Tak
wic Prolog mo na uwa a. za pierwszy krok na drodze ku ostatecznemu celowi pro-
gramowania w logice. W ksi ce tej nie bdziemy zanadto zastanawia. si nad dal-
szymi implikacjami programowania w logice, nie bdzie nas te specjalnie intereso-
wało, dlaczego Prolog nie jest gotowym jzykiem programowania w logice. Zamiast
tego skoncentrujemy si na pisaniu przydatnych programów za pomoc istniejcych
obecnie systemów standardowego Prologu.
Plik z chomika:
mosciska45
Inne pliki z tego folderu:
dlsecureTb_1.0.1.3.exe
(4144 KB)
MAXITERM.pdf
(1910 KB)
autocad 2005 i 2005 pl full.pdf
(22413 KB)
intensywny kurs przywództwa. szybki program rozwoju zdolności przywódczych full.pdf
(9732 KB)
płytki umysł. jak internet wpływa na nasz mózg helion.pdf
(34503 KB)
Inne foldery tego chomika:
Pliki dostępne do 08.07.2024
# SZKOŁA
Angielski
Bajki
Dokumenty
Zgłoś jeśli
naruszono regulamin