是否可以从 C# 运行 prolog?

Posted

技术标签:

【中文标题】是否可以从 C# 运行 prolog?【英文标题】:Is it possible to run prolog from C#? 【发布时间】:2015-09-15 04:34:47 【问题描述】:

我想从 C# 调用一个 prolog 程序。那可能吗? 我通过 c# 处理用户输入并写入文件。然后我想调用一个使用该文件的 prolog 程序,然后我想通过 c# 向用户显示文件的内容。

【问题讨论】:

【参考方案1】:

是的,如果您不想将两个程序链接到单个二进制文件,而只是让一个 (C#) 调用另一个 (prolog),则可以这样做。对于任何其他语言,您也可以在您的计算机上运行。

如果你的数据交换基于文件,你需要一个文件从 C#->prolog 发送数据,也许还有第二个文件来返回结果 (prolog->C#)

你会在 SO 上找到很多让 C# 调用外部程序的示例(例如 Launching an application (.EXE) from C#?)

如果 prolog 不允许您在调用它时将文件名作为参数传递,您将不得不使用固定文件名:

C#写一个request.txt C#调用prolog程序 Prolog 读取 request.txt 并创建 response.txt

Reading from files 应该被语言覆盖,这取决于“方言”,即使reading command line parameters 也应该是。

【讨论】:

问题是我无法通过 process.arguments 将参数传递给 prolog shell。 @signal107 我不太了解 prolog 或您使用的特定 prolog 版本,但应该有解决此问题的方法。请看看我上次的编辑。【参考方案2】:

如果你使用 SWI-Prolog,你应该 google SWI-Prolog interface to C# and F#

【讨论】:

以上是关于是否可以从 C# 运行 prolog?的主要内容,如果未能解决你的问题,请参考以下文章

快速在 Prolog 中运行

使用 SWI 序言

使用 C/C++ 以外的语言构建共享库,特别是 prolog

SWI Prolog程序可以从外部数据库获取其事实吗?

在prolog中,是否可以将一个列表作为一个事实?

Prolog 网络编程