中文

用于编写确定性元解释器的链程序

计算机科学中的逻辑 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"