用于编写确定性元解释器的链程序
计算机科学中的逻辑
2007-05-23 v1 编程语言
摘要
许多在逻辑编程文献中发现的元解释器都是非确定性的,即程序子句的选择并非由特定规则决定。例如就是我们熟知的“演示”和“vanilla”元解释器。对于某些应用而言,这种非确定性是方便的。在某些情况下,需要一种确定性元解释器,即具有明确子句选择机制。这包括:(1) 将 OR 并行转换为 AND 并行以适用于“提交选择”处理器;(2) 基于逻辑的、仪ere语言实现搜索策略;(3) 模拟有限资源推理。确定性元解释器的编写困难,因为程序员必须关注派生树中节点子节点单一变体的集合。在本文中,我们认为以对象程序转换为称为“链形式”的语法受限形式来编写这些元解释器是可能的且有优势的,因为在此情况下我们可以忽略联合问题,除了单元子句之外。我们给出两种将逻辑程序转换为链形式的转换方法:一种针对“带模”程序(隐含在两个现有的穷举遍历方法中,用于提交选择执行),另一种针对任意 definite 程序。作为本方法的示例,我们展示了上述三种应用的实例。
引用
@article{arxiv.cs/0104003,
title = {Chain Programs for Writing Deterministic Metainterpreters},
author = {David A. Rosenblueth},
journal= {arXiv preprint arXiv:cs/0104003},
year = {2007}
}
备注
30 pages. To appear in the journal "Theory and Practice of Logic Programming"