www.aussiefiji.com
okladka
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żności 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 wejścia/wyjścia
  • 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. Jeśli chcesz podjąć wyzwanie i nauczyć się Prologu, jest książka dla Ciebie.
Wstęp (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)
  • Łączenie struktur (62)
  • Akumulatory (66)
  • Struktury różnicowe (68)
Rozdział 4. Nawracanie i odcięcie (71)
  • Generowanie wielu rozwiązań (72)
  • Odcięcie (75)
  • Typowe zastosowania odcięcia (80)
    • Potwierdzanie wyboru reguły (80)
    • Użycie odcięcia z predykatem fail (84)
    • Kończenie generowania możliwych rozwiązań i ich sprawdzanie (86)
  • Niebezpieczeństwa wynikające ze stosowania odcięcia (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 zdań (98)
  • Czytanie z plików i pisanie do plików (101)
    • Otwieranie i zamykanie strumieni (102)
    • Zmiana bieżącego strumienia wejściowego i wyjściowego (103)
    • Konsultowanie (104)
  • Deklarowanie operatorów (105)
Rozdział 6. Predykaty wbudowane (107)
  • Wprowadzanie nowych klauzul (107)
  • Sukces i porażka (109)
  • Klasyfikacja termów (110)
  • Przetwarzanie klauzul jako termów (111)
  • Tworzenie składników struktur i sięganie do nich (114)
  • Wpływ na nawracanie (118)
  • Tworzenie celów złożonych (119)
  • Równość (122)
  • Wejście i wyjście (122)
  • Obsługa plików (124)
  • Wyliczanie wyrażeń 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)
  • Wieże Hanoi (135)
  • Program magazynowy (136)
  • Przetwarzanie list (137)
  • Zapis i przetwarzanie zbiorów (140)
  • Sortowanie (142)
  • Użycie bazy danych (145)
    • random (145)
    • gensym (146)
    • findall (147)
  • Przeszukiwanie grafów (149)
  • Odsiej Dwójki i odsiej Trójki (153)
  • Różniczkowanie symboliczne (155)
  • Odwzorowywanie struktur i przekształcanie drzew (157)
  • Przetwarzanie programów (160)
  • Literatura (163)
Rozdział 8. Usuwanie błędów w programach prologowych (165)
  • Układ programów (166)
  • Typowe błędy (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łędó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 języka na logikę (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 twierdzeń (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 ćwiczeń (231)
Dodatek B Klauzulowa postać programów (235)
Dodatek C Przenośne programy w standardowym Prologu (241)
  • Przenośność standardu Prologu (241)
  • Różne implementacje Prologu (242)
  • Czego się wystrzegać (243)
  • Definicje wybranych predykatów standardowych (244)
    • Przetwarzanie znaków (245)
    • Dyrektywy (247)
    • Wejście i wyjście strumieniowe (247)
    • Różne (249)
Dodatek D Różne wersje Prologu (251)
Dodatek E Dialekt edynburski (255)
Dodatek F micro-Prolog (263)
Skorowidz (267)