| 摘要: |
| 函数式语言和逻辑语言在下列意义上是互补的,基于归约的函数式程序设计语言具有确定和懒惰求解等性质.但同时它又缺少诸如存在量化的变量以及部分数据结构等所希望的性质.相反,基于HORN子句逻辑和消解原理的逻辑程序设计语言允许存在量化的变量和部分数据结构但又缺少确定和懒惰求解的性质.从这个角度出发,把函数和逻辑程序设计语言结合成一种范型是很自然的,这种结合提供了一种比逻辑和函数语言表达能力更强的合一语言.提出了函数式逻辑语言的操作语义,同时表明这种操作语义在实践中是可见的. |
| 关键词: 函数式程序设计 逻辑程序设计 紧缩 合一 项重写 懒惰紧缩 |
| DOI: |
| 分类号: |
| 基金项目: |
|
| Operational Semantics for Functional Logic Languages |
|
MOHAMED Hamada
|
| Abstract: |
| Functional languages and logic languages complement each other in the following sense. Functional programming languages, based on reduction, have properties such as deterministic evaluation and lazy evaluation; however they lack some desirable properties such as existentially quantified variables and partial data structures. On the contrary, logic programming languages, based on Horn clause logic and resolution, allow existentially quantified variables and partial data structures but lack both deterministic evaluation and lazy evaluation. From this point of view it is natural to inegrate functional and logic programming languages into one paradigm.This provides a unified language with more expressive power than both logic and functional languages.This pa-per discusses the proposal for an operational semantics of functional logic languages,and demonstrates tthat the operational semantics is practically visible. |
| Key words: functional programming logic programming narrowing unification term rewriting lazy narrowing |