Prolog Programowanie.pdf
(
266 KB
)
Pobierz
C:\Andrzej\PDF\ABC nagrywania p³yt CD\1 strona.cdr
IDZ DO
PRZYK£ADOW
Y ROZDZIA£
Prolog. Programowanie
SPIS TRECI
KATALOG KSI¥¯EK
Autorzy: W. F. Clocksin, C. S. Mellish
T³umaczenie: Tomasz ¯mijewski
ISBN: 83-7197-918-5
Tytu³ orygina³
u:
Programming in Prolog
Format: B5, stron: 274
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Programowanie w Prologu ró¿ni siê zasadniczo od programowania w jêzykach
strukturalnych, takich jak Pascal czy C i jêzykach obiektowych jak Java. Dla wielu osób
zaczynaj¹cych przygodê z Prologiem zaskoczeniem jest fakt, ¿e pisanie programu
w tym jêzyku nie polega na kodowaniu algorytmu. Programista opisuje obiekty i zwi¹zki
miêdzy nimi, a tak¿e podaje warunki, jakie powinno spe³niaæ szukane rozwi¹zanie.
System sam przeprowadza obliczenia w oparciu o podane zale¿noci logiczne, za
programista jedynie czêciowo mo¿e wp³ywaæ na sposób dzia³ania programu.
Ksi¹¿ka „Prolog. Programowanie” to podrêcznik tego niezwyk³ego jêzyka
programowania stosowanego przy rozwi¹zywaniu problemów z ró¿nych dziedzin:
od logiki matematycznej i symbolicznego rozwi¹zywania równañ przez analizê jêzyka
naturalnego, a¿ do zagadnieñ zwi¹zanych ze sztuczn¹ inteligencj¹. Zawiera ona:
• Wprowadzenie do Prologu
• Podstawowe struktury danych
• Nawracanie, sterowanie nawracaniem za pomoc¹ symbolu odciêcia
• Operacje wejcia/wyjcia
• Predykaty
• Sk³adniê regu³ gramatycznych i analizê jêzyka naturalnego
• Wiele przyk³adowych programów
Wszystkim rozdzia³om towarzysz¹ æwiczenia. Uzupe³nieniem tekstu ksi¹¿ki s¹ dodatki
omawiaj¹ce m.in. rozwi¹zania æwiczeñ i ró¿nice miêdzy najwa¿niejszymi wersjami
Prologu.
„Prolog. Programowanie” to ksi¹¿ka dla studentów matematyki i informatyki, a tak¿e
dla wszystkich zainteresowanych programowaniem opartym na regu³ach logicznych.
Jeli chcesz podj¹æ wyzwanie i nauczyæ siê Prologu, jest ksi¹¿ka dla Ciebie.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
Wstp ...............................................................................................7
Rozdział 1. Wprowadzenie .................................................................................11
Prolog....................................................................................................................11
Obiekty i relacje .....................................................................................................12
Programowanie.......................................................................................................13
Fakty.....................................................................................................................14
Zapytania...............................................................................................................16
Zmienne.................................................................................................................17
Koniunkcje.............................................................................................................19
Reguły...................................................................................................................23
Podsumowanie i %wiczenia ......................................................................................28
Rozdział 2. Prolog z bliska.................................................................................31
Składnia.................................................................................................................31
Stałe ................................................................................................................32
Zmienne...........................................................................................................32
Struktury..........................................................................................................33
Znaki.....................................................................................................................34
Operatory...............................................................................................................35
Równo+% i unifikacja...............................................................................................37
Arytmetyka ............................................................................................................38
Spełnianie celów — podsumowanie..........................................................................42
Udane spełnienie koniunkcji celów.....................................................................42
Cele i nawracanie..............................................................................................45
Unifikacja ........................................................................................................47
Rozdział 3. Korzystanie ze struktur danych.........................................................49
Struktury a drzewa..................................................................................................49
Listy......................................................................................................................51
Przeszukiwanie rekurencyjne...................................................................................54
Odwzorowania .......................................................................................................57
Porównywanie rekurencyjne....................................................................................60
Ł4czenie struktur....................................................................................................62
Akumulatory ..........................................................................................................66
Struktury ró5nicowe................................................................................................68
Rozdział 4. Nawracanie i odcicie......................................................................71
Generowanie wielu rozwi4za7..................................................................................72
Odci8cie.................................................................................................................75
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.
Plik z chomika:
janowiec
Inne pliki z tego folderu:
Asembler dla procesorow Intel Vademecum profesjonalisty.pdf
(400 KB)
Asembler cwiczenia praktyczne.pdf
(358 KB)
Architektura systemow zarzadzania przedsiebiorstwem Wzorce projektowe.pdf
(829 KB)
Architektura oprogramowania Metody oceny oraz analiza przypadkow.pdf
(429 KB)
Aplikacje w Visual C++ 2005 Przyklady.pdf
(296 KB)
Inne foldery tego chomika:
PHP
Zgłoś jeśli
naruszono regulamin