论文部分内容阅读
Z是目前应用最为广泛的一种形式规格说明语言,它以一阶谓词逻辑和集合论作为其形式语义基础,具有简明、精确的特点。主要用于软件的需求阶段,它摒弃了采用自然语言描述需求的模糊性和二义性。但由于z规格说明本身缺少一套完整的编译环境,发展较为缓慢,鉴于这个原因提出了Z向高级程序语言自动转化的思想。本文主要研究的是集合论中笛卡尔积算子的自动求精。 论文包括了以下几个方面:首先研究了Z中的各种数据类型及其间的相互关系。其次归纳总结了Z规格说明文法,形成了一个Z文法的子集,我们称之为Smart Z。之后把它转换成EBNF文法,再通过一系列变换转化成无二义性的SI-NS图,根据此图就可以写出相应的各个子程序。再次本文主要是研究了笛卡尔积算子的数据求精和过程求精,笛卡尔积本质上是n个集合元素组成序偶的集合,根据笛卡尔积自身的特点数据求精后转化成C++中的记录类型,而在过程求精中则采用了C++模板和STL技术,首先编写了两个乃至多个集合所形成的笛卡尔积的模板,其次制定了两个笛卡尔积之间的交、并、补的求精规则。最后举例说明Z到C自动求精的过程,在这里对Z词法分析后输出各类单词及其内码值,对Z语法分析后如有错给出相应的错误处理,最终通过求精规则转化成C++程序代码。 提出从Z规格说明到高级语言自动转换的思想,实现了从完全形式化的需求说明到编码的自动转换,这不仅将加快Z在工业界的广泛推广,也将加快软件产品的开发。