论文部分内容阅读
G(o)del语言是继Prolog之后出现的一种新型通用逻辑程序设计语言,它具有一个多态多类的类型系统、有灵活的计算规则和剪枝操作、支持模块化程序设计,因此相对与Prolog语言具有明显的优势。但是它从推出起一直发展缓慢得不到广泛应用,究其主要原因一方面是因为没有一个成熟的编译器来支持它的应用。最初的G(o)del编译器Bristol G(o)del因采用SICStus Prolog实现而效率较低且无法完全实现G(o)del的语言功能,至今停留在实验室阶段。另一方面,G(o)del语言的各种语言成分在增强它的表达能力的同时带来了复杂性,这对如何建立合适的语义理论基础提出了挑战。
本文的工作主要从这两方面出发,首先,结合课题组的工作和Warren机的工作原理,发展了一种面向G(o)del语言的抽象机。与Warren机相比,G(o)del抽象机在系统结构和抽象机指令方面都做了大量修改和功能扩充,能够很好地刻画G(o)del中的延迟计算和剪枝操作等语义,本文详细介绍了G(o)del抽象机的存储结构,机器状态表示方法,给出九类指令以及每条指令的意义。并试图用它来描述G(o)del语言的各种语言成分的操作语义。
其次,引入进化代数定义了G(o)del程序的一个抽象描述方法,从较抽象的角度表示G(o)del程序一般子句、延迟计算和剪枝操作。进化代数本身是一种功能强大的语义描述工具,在文中引入它并把它作为基于抽象机的语义描述方法的理论支持和实践指导。文中通过多个例子详细介绍了使用抽象机指令描述G(o)del程序一般子句、延迟声明和剪枝操作的方法,刻画了G(o)del语言的操作语义。
本文的主要贡献在于:
1)在Warren抽象机的基础上发展了G(o)del抽象机,设计了它的存储结构、状态表示和指令集。G(o)del抽象机是为描述G6del语言操作语义设计的,它可以很好的刻画G(o)del语言的各种语言成分;
2)引进进化代数方法,从较高的抽象层次对G(o)del程序进行描述。作为一种语义描述工具,G(o)del语言进化代数系统的建立一方面为基于抽象机指令的操作语义描述法方法提供了方法指导,另一方面也为其提供了理论支持;
3)详细给出了G(o)del语言各语言成分基于G(o)del抽象机的语义描述方法,由于基于抽象机模型的操作语义描述方法规定了具体的执行规则和步骤,非常接近具体实现,因此可以直接指导G(o)del语言编译系统的开发。本文已按照这一设计方法用C++语言模拟了该抽象机,经过初步实现,以G(o)del抽象机为基础的编译系统已可以执行基本的G(o)del程序。