【问题标题】:Which is the correct order to generate WAM code for L0 program terms?为 L0 程序术语生成 WAM 代码的正确顺序是什么?
【发布时间】:2016-10-28 20:01:01
【问题描述】:

Hassan Aït-Kaci's "Warren's Abstract Machine: A Tutorial Reconstruction" 2.2 节中,L0 查询的编译顺序已经很清楚了:寄存器必须以从左到右的广度优先搜索分配,代码必须以从左到右的后序深度生成-首先搜索。

在 2.3 节中,寄存器分配(L0 程序)的顺序很明确:从左到右的广度优先搜索。代码生成的顺序不是。仅给出一个示例,我不知道应该使用 BFS 还是 DFS 来生成代码。

谁能给我以下 L0 程序的 WAM 代码?

p(q(r(a)),s(b))。

【问题讨论】:

标签: prolog warren-abstract-machine


【解决方案1】:

我把你的程序放在sample.pl:

$猫样本.pl p(q(r(a)),s(b))。

使用GNU Prolog,然后我做了:

$ gplc -w sample.pl

以下WAM指令随后包含在sample.wbc中:

子句(p(q(r(a)),s(b)),[ 获取结构(q/1,0), 统一结构(r/1), 统一原子(a), 获取结构(s/1,1), 统一原子(b), 继续])。

【讨论】:

  • glpc -W 有什么区别,我宁愿用它来获取.wam-files?
猜你喜欢
  • 1970-01-01
  • 2017-06-28
  • 1970-01-01
  • 2018-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多