在iPhone上执行prolog代码

Ben*_*dik 16 iphone prolog logic-programming

我目前需要在我正在制作的应用程序中执行prolog代码.我知道Apple可能永远不会在App Store中允许这样的东西,但这也不是意图.这是一个永远不会到达App Store的私人项目.

目的

在这种情况下,prolog用于描述对象(例如电话)及其属性.将使用prolog脚本中指定的坐标使用OpenGL绘制对象.使用prolog的原因是我需要能够向程序查询该对象具有的一些功能,并且对此进行了大量修改.结论:我"需要"从我的应用程序查询prolog脚本.

可能的解决方案

  • 嵌入用C编写的现有实现.我不确定这是否可行.
  • 在另一台机器上执行prolog代码并使用网络查询prolog.
  • 似乎可以在应用程序内部运行某种Ruby VM(据我所知,shinycocos使用它),这可以用来运行Ruby Prolog实现之一吗?
  • 找一些Prolog的替代品.这需要给我一些与prolog相同的可能性.

可悲的是,谷歌让我几乎没有任何结果,所以我觉得我可能在这个项目上很孤单.如果有人有任何经验或线索,我会非常感激.

shu*_*e87 6

有遇到类似的困难调用序言代码,尽管在不同的情况下,我建议你检查出蓖麻C++库.这允许您在本机c ++中编写逻辑范例代码,而无需扩展语言.由于castor是一个只有头文件库,所以在c ++可用的地方很容易编译.
Castor网站:http://www.mpprogramming.com/cpp/default.aspx


Ben*_*dik 5

半年后,我想就此提供一些见解.我最终用Java编写了一个带prolog接口的服务器,通过TCP接受prolog调用.它的工作方式几乎与现场prolog解释器SWI-prolog(以及其他)提供的一样,并且大多数工作得很好.但是,它远非最佳解决方案,因为您无法从prolog内部调用函数.你失去了双向沟通的可能性.

如果我重新开始,我肯定会更努力地编译iOS的纯C实现之一.我给了它一个快速的去,但我缺乏经验阻止我甚至删除我得到的所有错误.从你不能在未经修改的iOS版本上作为后台进程运行的事实判断,必须进行一些重大的重写.因此,人们可能只需从头开始编写一个新的实现(可能受到一些更轻量级的实现的启发)以获得完美的解决方案.