Ответ 1
Prolog.NET (изменить: ссылка обновлена по мере взлома старой ссылки сайта). Я попробовал как P #, так и Prolog.NET, но оба они имеют свои слабые стороны.
Кто-нибудь знает о хорошем (и желательно свободном) способе интеграции Prolog и С#?
Мне нужно создать DLL Prolog или аналогично вызову из моего управляемого кода и получить ответ после завершения всей обработки. Я ищу, чтобы он был преимущественно односторонним (С# вызывает Prolog).
Я видел этот вопрос, в котором говорится о реальном использовании Prologs, но мне было интересно, есть ли у кого-либо опыт работы с С# и Prolog? или хороший учебник/статья?
Prolog.NET (изменить: ссылка обновлена по мере взлома старой ссылки сайта). Я попробовал как P #, так и Prolog.NET, но оба они имеют свои слабые стороны.
Вы можете посмотреть Yield Prolog.
В Prolog используется ключевое слово yield
в С# (и Python и JavaScript) и пользовательский класс Variable
для имитации машины Prolog. Таким образом, вы получаете API Prolog на своем любимом языке. Вам не нужно связывать ваш основной язык с P # или аналогичными проектами.
Возможно, P # будет вам полезен
Это не бесплатно, но Sicstus Prolog позволяет подключаться к С# и Java
Это реализация Prolog, которую мы используем в нашей компании, и она очень быстрая и полезная.
С# Prolog, доступный из SourceForge (интерпретатор Prolog, написанный на С#)
Если ваш пролог - swi-prolog, у вас есть два варианта. Более старая, и по существу устаревшая версия http://www.swi-prolog.org/contrib/CSharp.html
Новее, гораздо лучше - swicli. http://www.swi-prolog.org/contrib/NetMono.html
Вы можете использовать ECLiPSe Prolog. я интегрировал его с VC8. было бы лучше использовать VC8 вместо С#.
Если развертывание с полной реализацией пролога не является проблемой, вы можете использовать SWI-Prolog и поговорить с ним через XPCE и сокеты.