Obiektowy Prolog

Poniżej znajduje się opis framework'ow, które w założeniu powinny umożliwiać programowanie obiektowe w Prologu oraz integracje takiego kodu z Java. Zostały one przetestowane i ocenione pod tym kątem w ramach projektu ruleruntimeo

Oto lista : * yap - yap jako wysoko wydajny kompilator Prologa, wzbogacony o takie funkcjonalności jak : strumienie We/Wy, socket'y, moduły wyjątki, debugger itp. nie wydaje się być narzędziem przydatnym w tym projekcie, zwłaszcza że gdy w jego dokumentacji pojawia się temat obiektowości polecane jest użycie LogTalk'a, który swoją drogą podobno dość dobrze się integruje z yap'em.

  • amzi - narzędzie płatne, choć można wykorzystywać do celów akademickich za darmo, niestety bez źródeł. Bardzo dobrze udokumentowane. Posiada interface do używania prologa z Javy, poprzez obiekt klasy LogicServer możemy się łatwo odwoływać do bazy wiedzy Prologa, w sposób przypominający przesyłanie zapytań do bazy danych.Natomiast dokładna dokumentacja : LogicServer API. Rozwiązanie wydaje się być zbliżone do SICStus'a. Wygląda na brak wsparcia dla obiektowości.
  • SICStus Prolog - umożliwia integracje aplikacji napisanej w Prologu z inna napisana w Java/.NET poprzez PrologBeans. Klient, aplikacja JAVA'owowa przesyła komunikaty, które są odpowiednio oceniane przez server-Prolog'a, obie aplikacje są osobnymi procesami, komunikują się przez sockety TCP, czyli w architekturze klient-serwer. SICStus Prolog wspiera także obiektowość poprzez moduł „The Objects Package—library(objects)”, czyli zapewnia enkapsulacje, dziedziczenie itp.
  • LogTalk - własne wsparcie dla obiektowości, poprzez LogTalk objects, zapewnia wszystkie podstawowe wymagania. Nie znalazłem bezpośredniego wsparcia dla integracji z innymi platformami, natomiast dokumentacja wspomina o takich możliwościach, dzięki "wysoko poziomowemu mapowaniu obiektów LogTalk".. Szczegóły na razie nie znane, ale przykład integracji Javy z LogTalk tutaj
  • Prolog OOP - umożliwia stosowanie prolog'owych modułów do za modelowania obiektowości, umożliwia wykorzystywanie wiekszości podstawowych predykatów obiektowości takich jak:
    • dziedziczenie modułów
    • enkapsulacje predykatów
    • abstrakcyjne definiowanie modułów

Natomiast nie ma w nim mowy o możliwościach integracji Prologa z innym obiektowym językiem, to jest tylko próba wprowadzenia obiektowości do samego Prologa.

  • TrincProlog - oferuje właściwie analogiczny pomysł, czyli rozszerzenie prologa o obiektowość. Tyle, że tym razem dodatkowe słowa kluczowe pozwalają na deklarowanie klas niezależnie od modułów (czyli np kilka klas w jednym module, itp ). Tyle, że niestety znowu brak możliwości integracji z innymi językami. Obiecująco wyglądała część do tworzenia aplikacji Windows, ale okazało się że jest już gotowe API pozwalające odwoływać się do obiektów GUI (Window, Button, itp.) poprzez predykaty prologa. Być może można by wykorzystać to API od odwoływania się do dowolnych obiektów, zbudować analogiczne?
pl/miw/miw08_ruleruntimeo/oopframeworks.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0