[[
✎ pl:miw:miw08_ruleruntimeo:jpljava
]]
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ć.
====== Przykład użycia JPL do komunikacji Prolog'a z Java ====== Poniżej przestawiam prosty przykład mocno inspirowany tutorialem do JPL. Probując wywołać predykat Prologa z kodu Javy posługujemy się następującą składnią : <code java> Query q2 = new Query( "child_of", new Term[] {new Atom("joe"),new Atom("ralf")} ); System.out.println( "child_of(joe,ralf) is " + ( q2.query() ? "provable" : "not provable" ) ); </code> Przykład pokazuje przesłanie zapytania do bazy wiedzy prologa. Można ten mechanizm wykorzystać do wywoływania predykatów wewnątrz obiektów LogTalk, czyli de facto do wywoływania metod na obiektach LogTalk z obiektów Java'y. Gdy konieczne jest wysłanie komunikatu do obiektu Java'y z poziomu Prologa, JPL oferuje następujące rozwiązanie : Predykat **jpl_new/3** pozwala na utworzenie instancji obiektu klasy z Javy : <code prolog> jpl_new( 'javax.swing.JFrame', ['frame with dialog'], F) </code> Natomiast predykat **jpl_call/4** pozwala wywołać metodę na utworzonym powyżej obiekcie: <code prolog> jpl_call( F, setVisible, [@(true)], _) </code> Jak widać JPL umożliwia obustronne wywoływanie metod pomiędzy obiektami klas zdefiniowanych w Javie i logiką opisaną w Prologu.
pl/miw/miw08_ruleruntimeo/jpljava.txt
· ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry