首页> 外文期刊>Theory and Practice of Logic Programming >A refinement calculus for logic programs
【24h】

A refinement calculus for logic programs

机译:逻辑程序的细化演算

获取原文
获取原文并翻译 | 示例

摘要

Existing refinement calculi provide frameworks for the stepwise development of imperative programs from specifications. This paper presents a refinement calculus for deriving logic programs. The calculus contains a wide-spectrum logic programming language, including executable constructs such as sequential conjunction, disjunction, and existential quantification, as well as specification constructs such as general predicates, assumptions and universal quantification. A declarative semantics is defined for this wide-spectrum language based on executions. Executions are partial functions from states to states, where a state is represented as a set of bindings. The semantics is used to define the meaning of programs and specifications, including parameters and recursion. To complete the calculus, a notion of correctness-preserving refinement over programs in the wide-spectrum language is defined and refinement laws for developing programs are introduced. The refinement calculus is illustrated using example derivations and prototype tool support is discussed.
机译:现有的改进演算为从规范逐步开发命令式程序提供了框架。本文提出了一种用于推导逻辑程序的细化演算。该演算包含一种广谱逻辑编程语言,包括可执行结构(例如顺序合取,析取和存在量化),以及规范结构(例如一般谓词,假设和通用量化)。基于执行为该广谱语言定义了声明性语义。执行是从状态到状态的部分函数,​​其中状态表示为一组绑定。语义用于定义程序和规范的含义,包括参数和递归。为了完成演算,定义了在广谱语言中对程序进行保留正确性改进的概念,并引入了用于开发程序的改进规则。使用示例推导说明了精细演算,并讨论了原型工具支持。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利