Testy jednostkowe w Prologu

W jednym z ostatnich wpisów dotyczących Prologa, poruszyłem temat modularyzacji, omawiając go na przykładzie kilku implementacji tego języka. Okazało się, że o ile nowoczesne odmiany, takie jak SWI-Prolog radzą sobie na tym polu całkiem nieźle, o tyle starsze warianty, np. GNU Prolog, mają tu niestety pewne braki. A jak wygląda w Prologu kwestia testów jednostkowych? […]

Read More

Modularyzacja w Prologu

Modularyzacja to coś oczywistego z perspektywy współczesnych języków programowania. Wiadomo przecież, że wrzucanie całego kodu to jednego pliku to coś, co sprawdza się jedynie na etapie programistycznej piaskownicy lub naprawdę niewielkich skrypcików. Dla wielu osób zaskoczeniem może być więc fakt, że nie wszystkie implementacje Prologa w ogóle wspierają modularyzację. Wynika to z prostego powodu – […]

Read More

Dynamiczne modyfikowanie prologowej bazy wiedzy

Proces tworzenia prostych prologowych aplikacji przebiega zazwyczaj podobnie. Zaczynamy od stworzenia bazy wiedzy, definiujemy niezbędne predykaty (niekiedy również w tym samym pliku), a następnie odpalamy interpreter i pytamy o fakty oraz łączące je relacje. Czy oznacza to, że zdefiniowana na samym początku baza jest czymś niemodyfikowalnym z punktu widzenia programu? Czy możemy zmieniać fakty przy […]

Read More

Podsumowanie prologowego wyzwania

Jak zapowiadałem pod koniec października, moim celem na listopad była nauka języka programowania Prolog. Czytałem książki i opracowania, pisałem kod, szukałem realnych zastosowań tej technologii. Czas nie pozwolił mi na zgłębienie w ciągu miesiąca tyle wiedzy, ile bym pragnął, jak również nie udało mi się opublikować wszystkich wpisów w zamierzonym okresie. Naocznym rezultatem mojego wyzwania […]

Read More

Relacje przechodnie w Prologu

W jednym z wcześniejszych wpisów poruszałem temat definiowania relacji symetrycznych w języku Prolog. Rozwiązaniem problemu okazało się tam zdefiniowanie relacji pomocniczej, dzięki której pozbywaliśmy się nieskończonej pętli wywołań. Podobnie jest i w tym przypadku, bowiem i tu definiowanie takiej relacji w sposób „naiwny” i „naturalny” nie zdaje egzaminu. Rozważmy taki oto przykład, w którym szeregujemy kraje […]

Read More

Realne zastosowania języka Prolog

Trudno nie zgodzić się z opinią, że Prolog jest językiem pod wieloma względami ciekawym. Chociażby dlatego, iż reprezentuje on paradygmat programowania logicznego, który zdecydowanie nie należy do najczęściej używanych. Sądzę, że owa odmienność od tego, z czym mamy styczność na co dzień jest jednym z powodów, dla których warto poznać pewne podstawy Prologa. Zyskujemy w […]

Read More