[[
✎ pl:miw:miw08_ruleruntimeo:swiconfig
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
===== Konfiguracja SWI-Prolog do LogTalk'a ===== Aby utworzyć, skompilować i załądować do pamieci obiekty LogTalk'a konieczne jest wcześniejsze skonfigurowanie używanego kompilatora Prolog'a. Na potrzeby tego projektu zakładam, że jest nim [[http://www.swi-prolog.org|SWI-Prolog]], jakkolwiek jeśli wierzyć dokumentacji LogTalk'a to jest on w pełni kompatybilny z większościa innych kompilatorów Prolog'a. Aby zintegrować LogTalk'a z SWI: należy wykonać predykat consult na trzech plikach, które można znaleźć w katalogu instalacyjnym LogTalk'a : * configs/swi.config - ustawia zmienne i konfiguruj srodowisko Prologa * complier/logtalk.pl - laduje kompilator LogTalka * libpaths/libpaths.pl - ustawia sciezki do bibliotek standardowych LogTalka chyba najwygodniej jest sporządzić sobie plik startowy: <code prolog> :-consult('lib/Resources/logtalk/swi.config'). :-consult('lib/Resources/logtalk/logtalk.pl'). :-consult('lib/Resources/logtalk/libpaths.pl'). </code> który pożniej uruchamiamy z Javy przed tworzeniem obiektów LogTalk, w następujący sposób: <code java> JPL.setDefaultInitArgs( new String[] { "pl", "-f", "none", "-g", "set_prolog_flag(debug_on_error,false)", "-q", "-nosignals" } ); Query q = new Query("['lib/logtalkLoad.pl']."); if (!q.hasSolution()) { RuntimeException e = new RuntimeException("error loading logtalk"); } else { System.out.println("Hurray!"); } </code> Po udanym wykonaniu powyższego kodu jesteśmy już w stanie tworzyć obiekty LogTalk z kodu Javy i wywoływać ich metody : <code java> //utworznie instancji obiektu logTalkControler Query loadControler = new Query("logtalk_load", new Term[]{ new Atom("logTalkControler") } ); //wywolanie metody testValue obiektu logTalkControler Query askLgt = new Query("logTalkControler::testValue(valueToTest)."); System.out.println("Is 'a' a proper TestValue?:" + (askLgt("testValue", "a")?"YES":"NO!")); </code> Pełną treść tego przykładu zamieszczam tutaj [[pl:miw:miw08_ruleruntimeo:logtalkjava]].
pl/miw/miw08_ruleruntimeo/swiconfig.txt
· ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry