逻辑编程中的作用域构造:实现问题及其解决方法
摘要:对逻辑编程中目标的普遍量化和蕴含形式的包含被考虑到。这些添加提供了范围的逻辑基础,但它们也引起了新的实现问题。当普遍量词和存在量词被允许以混合顺序出现在目标中时,用于解决存在目标的逻辑变量和一致化的设备必须进行修改,以确保考虑到量化顺序所产生的约束。本文描述了一种适当的修改,基于为常量和变量附加数值标签,并在一致化中使用这些标签。所得到的设备可以进行高效实现,并且实际上可以容易地融入到Warren抽象机器(WAM)的常规机制中。在目标中引入蕴含使得可以为解决特定子目标而向程序中添加程序子句。基于断言和撤销程序子句的简单方案不能满足实现这些添加的要求,原因有两点。首先,在回溯时需要支持早期存在的程序的恢复。其次,蕴含目标被量词包围的可能性要求考虑程序子句通过绑定其自由变量来参数化。本文描述了支持这些额外要求的设备,以及这些设备如何集成到WAM中。还概述了处理语言的高阶添加的机器的进一步扩展。本文提出的思想与高阶逻辑编程语言lambda Prolog的实现相关。
作者:Gopalan Nadathur, Bharat Jayaraman and Keehang Kwon
论文ID:cs/9809016
分类:Programming Languages
分类简称:cs.PL
提交时间:2007-05-23