我正在使用Prolog进行学术项目.我想知道Prolog是否有办法与其他编程语言进行交互.我想要的是一个简单的输入/输出重定向Prolog问题和答案.
我知道Prolog可以在一些Prolog实现中调用C函数.即SWI Prolog.
我需要的是Prolog问题的简单输入/输出重定向以及用户提供的答案.
任何帮助将非常感激.
我没有看到任何对您的任务的外语界面的真正要求:使用Prolog IO,它易于使用且高效.您也可以从protocol/1的支持开始.只是一个KISS的建议......
当您需要用其他语言实现的东西时,它是必需的外语接口.
SWI-Prolog C++接口比C语言接口更容易使用,并且允许通过非常简单的内置编码扩展语言,以及将引擎嵌入到独立的"主"中.这两个方面可以优雅地结合起来:比如我们实现内置的快速原型,并使用REPL顶级,而完整的应用程序可以启动引擎用作逻辑引擎,并提交(希望通过REPL测试) )在后台查询.
然后有JPL来连接SWI-Prolog和Java.我对此知之甚少......我已经看到SWI-Prolog邮件列表中报告了一些问题,主要是由于不同线程模型的复杂性.但肯定是有效的.
一个有趣的发展正在使IDE可用于Eclipse(PDT,Prolog开发工具).我认为他们使用自己的Java接口.目前可能是比JPL更好的选择.
但是最有趣的界面SWI-Prolog今天可以提出它是HTTP服务器基础设施.如果您了解WEB客户端开发(HTML/JavaScript/XML/RDF),那么您可以使用大量工具在MVC Client/Server中拆分设计.Prolog运行Web服务,富客户端与最终用户交互.这种架构使您的应用程序可以在本地运行,也可以在野外运行.
请参阅相关的" 如何"部分...这不是一项简单的任务,但(恕我直言)是一个非常有益和长期的任务.