【问题标题】:Running Prolog in a web browser在网络浏览器中运行 Prolog
【发布时间】:2015-05-18 16:16:50
【问题描述】:

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

【问题讨论】:

  • 很遗憾,A related question 已关闭。
  • @false 恐怕这个也可能要关闭了。这本质上是一个“软件推荐”问题,不适合本网站。
  • @duskwuff 如果可能的话,应该把它移到softwarerecs.stackexchange.com

标签: html css prolog


【解决方案1】:

是的,YieldProlog 是一个现成的“转换器”,可以从 Prolog 的一个好的子集到 JavaScript。

编辑

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

编辑

hhprolog 的预览,我移植到 Prof.Tarau Hitchhicker Prolog 虚拟机的 Javascript。

点击 [ Run code sn-p ] 以 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>

【讨论】:

    【解决方案2】:

    我真的不知道您想在线使用 Prolog 做什么,但here 有几个在线“IDE”和多种语言的编译器(包括 Prolog),因此您可以在那里执行您的 prolog 脚本

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

    【讨论】:

      【解决方案3】:

      【讨论】:

      【解决方案4】:

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

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

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

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

      第一次测试表明它是 ca。比
      快 10 倍 TauProlog 也更易于使用,因为它实现了一个
      迭代器 API。所以将来可能会得到更多的照顾。

      【讨论】:

        猜你喜欢
        • 2012-10-30
        • 1970-01-01
        • 2013-10-12
        • 2019-11-25
        • 1970-01-01
        • 2020-08-22
        • 2014-09-23
        • 2019-07-05
        • 2020-11-06
        相关资源
        最近更新 更多