论文部分内容阅读
众所周知,软件危机的主要特征是软件开发难度大,生产效率低,其正确性和可靠性得不到保证,而高级程序设计语言中的泛型语言机制和泛型程序设计,也称为参数化程序设计,是提高软件可靠性及其生产效率的有效途径。因此现代高级程序设计语言,如Java、C++、C#和Ada中均有泛型语言机制。遗憾的是这类高级程序设计语言中的泛型语言机制种类偏少,一般只有类型作参数。少数语言还有子程序作参数。这是由在高级程序设计语言中实现泛型语言机制的复杂性造成的。近年来,国内外软件界均把在高级程序设计语言中有效地实现泛型语言机制作为研究目标。本文作者导师薛锦云主持承担的多项国家自然科学基金课题均以提出并有效地实现更多的新型泛型语言机制作为研究目标。薛锦云2015年在法国巴黎召开的ICFEM2015国际会议上提出了类型(type)、动作(action)和抽象数据类型(ADT)作参数的新型安全泛型机制。本论文的研究目标就是在Apla-Java程序生成系统中,有效地实现上述新型安全泛型程序设计机制。本文首先对迫切需要在Apla-Java程序自动生成系统中实现的新型泛型语言机制进行了系统的研究,其次简化了原有的Apla中多重赋值语句到Java语言程序的自动转换方法,有效地实现了抽象数据类型语言机制,紧接着介绍了建模语言Apla中三种安全泛型语言机制,并提出一种新型泛型语言机制在Apla-Java程序自动生成系统中实现的新方法,并用大量用例测试该方法的正确性和新型泛型语言机制的有效性,在本文中也演示了多种典型泛型算法程序的实现。本文的主要创新点如下:1.基于模型驱动软件工程(MDE)的技术框架,在建模语言Apla中扩展并实现了抽象数据类型(ADT)机制,三种泛型语言机制(type、action和ADT)及其安全机制(region),简化了多重赋值语句到对应Java程序的转换算法,使最终生成的Java程序完全具备泛型程序的功能,这在国内外尚未发现有类似的方法和结果;2.三种新型泛型语言机制,首次在Apla语言中得到实现,使通过模型转换得到的Java程序完全具备泛型程序的功能,消除了在Java语言中直接添加泛型语言机制带来的复杂性,效果十分显著。该实现算法应属首创;3.本文初步实现的region安全泛型语言机制显著提高Java程序的安全性,region概念的提出和实现也是本文的首创。