论文部分内容阅读
“软件危机”是造成当前软件产业发展缓慢的主要因素,其表现形式有:1.软件产品的质量靠不住;2.软件的可维护性低;3.软件的成本不断提高;4.软件开发生产率的提高赶不上硬件的发展和人们需求的增长。在多项国家级课题资助下形成的PAR方法正是克服上述“软件危机”,提高软件的可靠性和开发效率的简单有效的形式化开发方法。本项研究作为PAR方法的一个重要组成部分,也是国家自然科学基金课题“实用的形式化开发方法及其工具的研究”的一个子课题,目标是研制一个自动程序转换系统,该系统能将用Apla语言描述的抽象程序转换为目前流行的C++语言程序并直接运行。 针对上述研究目标,我们主要进行了以下工作: 1.研究阻碍当前软件发展的主要因素,对现有的形式化方法及其配套工具进行了分析比较,并以PAR方法作为本文研究的理论基础。 2.使用PAR方法开发了一些典型的算法问题。通过大量的开发实例证明,PAR方法的确是一种简单有效的算法程序形式化开发方法。 3.对Apla语言和C++语言的文法进行比较,研究它们之间的转换规则。 4.研究将Apla语言中的泛型程序设计机制转换为等价C++语言程序的方法。 5.研制核心转换器,实现Apla抽象数据类型到C++部件库的转换。 6.研制Apla到C++自动程序转换系统。 7.用大量典型的Apla程序对自动程序转换系统进行了测试。 在系统的研制过程中,我们参考了当前流行的程序编辑器和现有的程序转换系统的特点,并进行了多方面的创新:在实现技术上,采用中间变量自动生成及检测技术,实现了Apla语言中多重赋值语句的转换;在系统功能上,实现了抽象程序到可执行程序的自动转换并直接运行得到结果,集程序转换器和编译器的特点于一身;在系统界面上,创造性地实现了转换后编辑窗口的自动分割,便于Apla程序和转换得到的C++程序的比较,并在窗口中直接引入数学符号工具栏,既体现了系统的特色又方便用户的使用。 本系统含代码1万1千余行,我们用该系统对大量的经过严格推导的Apla程序进行了转换以检测其实际运行效果。Apla语言充分体现了功能抽象、数据抽象等现代程序设计思想,它引入了传统的数学符号和数学表达式,用Apla语言书写的程序便于形式化推导和证明。而用于部件库转换的核心转换器则经过了严格的测试,所有这些都充分保障了转换得到的C++程序的可靠性。这些Apla程序经过转换并直接运行得到了正确的结果就充分说明了这一点。因此,本系统作为提高软件可靠性和开发效率的自动化工具,可以进一步产品化并应用到实际的软件开发中去以促进软件产业的快速发展。