是否可以区分Prolog Interpreter和Prolog编译器的使用或生成的中间文件?
维基百科有很好的Prolog实现汇编 http://en.wikipedia.org/wiki/Comparison_of_Prolog_implementations
这是关于表格中使用的符号的问题。
列"编译代码&#34>意味着相应的Prolog是用Prolog编译器实现的吗?
(我不确定stackoverflow是否是一个讨论这个问题的好地方。如果没有,请告诉我,我会删除这个帖子。)
答案 0 :(得分:3)
"编译代码"在此表中表示任何给定的Prolog程序都是本身由相应的Prolog系统编译,并且执行编译的表单。
这些系统中的大多数在执行之前将Prolog程序编译为抽象机器代码。 Prolog的抽象机器示例(如JVM for Java)是WAM,ZIP,TOAM等。
其中一些系统甚至将Prolog代码编译为本机机器代码,例如通过JIT编译,就像Java系统可以将Java代码编译为本机机器代码一样。
实际上,在使用Prolog时,通常不创建中间文件:运行Prolog系统,加载源文件,系统动态编译文件 和在内存中抽象机器代码,而不创建中间文件。您通常可以在需要时手动创建此类文件,但通常不会。
因此,中间文件的创建不是一个标准,可以让您区分编译器和解释器。