2012-05-17 14 views
6

Używam Prolog do projektu akademickiego. Chciałem wiedzieć, czy istnieje sposób na Prolog do interakcji z innymi językami programowania. To, czego chcę, to łatwe przekierowanie danych wejściowych i wyjściowych do pytań Prologu i odpowiedzi.Integrowanie prologu z innymi środowiskami

Mam świadomość, że Prolog może wywoływać funkcje C w niektórych implementacjach Prolog. tj. SWI Prolog.

Potrzebuję prostego przekierowania wejściowego/wyjściowego pytań Prologu i odpowiedzi udzielonej przez użytkownika.

Każda pomoc będzie naprawdę doceniana.

Odpowiedz

6

Nie widzę żadnych prawdziwych wymagań dla interfejsu języka obcego dla twojego zadania: użyj Prolog IO, jest łatwy w użyciu i wydajny. Możesz również zacząć od zwykłego wsparcia od protocol/1. Tylko rada KISS ...

Interfejs języka obcego jest obowiązkowy, gdy potrzebujesz czegoś wdrożonego w tym innym języku.

SWI-Prolog jest znacznie łatwiejszy w użyciu niż odpowiednik w języku C i umożliwia zarówno rozszerzenie języka z bardzo łatwym kodowaniem wbudowanym, jak i wbudowanie silnika w samodzielny "główny". Te dwa aspekty mogą z wdziękiem koheksować: powiedzmy o szybkim prototypie, po prostu implementujemy wbudowane i korzystamy z najwyższego poziomu REPL, podczas gdy pełna aplikacja może uruchomić silnik, który będzie używany jako silnik logiczny, i przesłać (miejmy nadzieję przetestować za pomocą REPL) zapytania w tle.

Następnie jest JPL do interfejsu SWI-Prolog i Java. Niewiele o tym wiem ... Widziałem problem zgłaszany na liście mailingowej SWI-Prolog, z powodu (głównie) złożoności różnych modeli wątków. Ale na pewno działa.

Pojawia się interesujący postęp, aby udostępnić IDE w środowisku Eclipse (PDT, narzędzia programistyczne Prolog). Myślę, że używają własnego interfejsu Java. Obecnie może być lepszym wyborem niż JPL.

Ale najciekawszy interfejs SWI-Prolog może dziś zaproponować infrastrukturę serwera HTTP. Jeśli znasz programowanie klienta WEB (HTML/JavaScript/XML/RDF), masz mnóstwo narzędzi do podziału projektu w MVC Client/Server. Prolog uruchamia usługę sieci Web, a bogaty klient wchodzi w interakcje z użytkownikiem końcowym. Ta architektura sprawi, że Twoja aplikacja będzie działać lokalnie i na wolności.

Proszę spojrzeć na odpowiednią sekcję How To ... Nie jest to proste zadanie, ale (IMHO) bardzo satysfakcjonujące i długotrwałe.

1

Spójrz na Amzi Prolog + Logic Server - jego celem jest uczynienie programów prologu dostępnymi jako część innych konwencjonalnych języków.

1

To zależy od używanej dystrybucji Prolog. Jak wcześniej zauważyliśmy, SWI-Prolog zapewnia różne interfejsy dla najczęściej używanych zastosowań, takich jak C, C++, bazy danych, HTTP, XML i inne. Rozkład Ciao może być również przydatny dla tego, czego szukasz. W tym przypadku jest C, więc sprawdź ten link Ciao Prolog and C