在Web浏览器中运行Prolog

时间:2015-05-18 16:16:50

标签: html5 css3 prolog

只是想知道是否可以在浏览器中运行prolog脚本?我在大学学习过,我喜欢把它添加到我的在线作品集中?

4 个答案:

答案 0 :(得分:7)

是的,YieldProlog是一个随时可用的转发器'从Prolog的一个很好的子集到JavaScript。

修改

现在有一个更好的替代方案,符合ISO标准:Tau Prolog

修改

预览hhprolog,我是Prof.Tarau Hitchhicker Prolog虚拟机的Javascript端口。

点击[运行代码段]以Peano表示法计算2 + 2,即纯Prolog的这个片段

 add(0,X,X).
 add(s(X),Y,s(Z)):-add(X,Y,Z).

 goal(R):-add(s(s(0)),s(s(0)),R).



<script src="https://cdn.jsdelivr.net/gh/CapelliC/hitchhicker-prolog@8424f251246b5f45d5a7ee7046e3e32d29b8282c/hhprolog-es6.js"></script>
<script>
const add = `
add 0 X X .

add _0 Y _1 and
  _0 holds s X and
  _1 holds s Z 
if
  add X Y Z .

goal R 
if
  add _0 _1 R and
  _0 holds s _2 and
  _2 holds s 0 and
  _1 holds s _3 and
  _3 holds s 0 .

`
    const prog = new Prog(add)
    //prog.ppCode()
    const t0 = Date.now()
    prog.run(true)
    console.log('elapsed secs', (Date.now() - t0) / 1000)

</script>
&#13;
&#13;
&#13;

答案 1 :(得分:3)

我真的不知道你想用Prolog在线做什么,但here有几个在线&#34; IDE&#34;和几种语言的编译器(包括Prolog)所以你可以在那里执行你的prolog脚本

如果你想在浏览器中运行prolog,恐怕我不知道如何轻松地做到这一点

答案 2 :(得分:2)

答案 3 :(得分:0)

我运行了以下交叉编译的系统。它
实现了 ISO 核心标准的一个子集,并且具有
一个外部函数接口和一个垃圾收集器。

Dogelog 通过 Prolog 玩井字游戏
http://www.dogelog.ch/play.html enter image description here

术语的指令流受阿尔布费拉的启发
下面编译。但是我们没有复制所有的尾递归
然而,又回到了“呼叫”和“重做”蹦床:

便携式 Prolog 编译器
会议:逻辑编程研讨会 - 葡萄牙阿尔布费拉
William Clocksin - 1983 年 1 月
https://www.researchgate.net/publication/273888197

第一次测试表明它是大约。比
快10倍 TauProlog 也更容易使用,因为它实现了一个
迭代器 API。所以未来可能会得到更多关注。