如何区分用Java编写的Prolog Interpreter和Prolog编译器?

时间:2014-08-07 23:38:33

标签: prolog

是否可以区分Prolog Interpreter和Prolog编译器的使用或生成的中间文件?

维基百科有很好的Prolog实现汇编        http://en.wikipedia.org/wiki/Comparison_of_Prolog_implementations

这是关于表格中使用的符号的问题。

列"编译代码&#34>意味着相应的Prolog是用Prolog编译器实现的吗?

(我不确定stackoverflow是否是一个讨论这个问题的好地方。如果没有,请告诉我,我会删除这个帖子。)

1 个答案:

答案 0 :(得分:3)

"编译代码"在此表中表示任何给定的Prolog程序都是本身由相应的Prolog系统编译,并且执行编译的表单。

这些系统中的大多数在执行之前将Prolog程序编译为抽象机器代码。 Prolog的抽象机器示例(如JVM for Java)是WAM,ZIP,TOAM等。

其中一些系统甚至将Prolog代码编译为本机机器代码,例如通过JIT编译,就像Java系统可以将Java代码编译为本机机器代码一样。

实际上,在使用Prolog时,通常创建中间文件:运行Prolog系统,加载源文件,系统动态编译文件 在内存中抽象机器代码,而不创建中间文件。您通常可以在需要时手动创建此类文件,但通常不会。

因此,中间文件的创建不是一个标准,可以让您区分编译器和解释器。