第1章引言
1. 1研究的背景和意义
软件对人类来说是一个崭新的东西,其发展历史不过四、五十年。但是,在这四、五十年中软件产品的规模以及复杂程度却有了数量级的增长。对软件的需求的增长速度大大超过了技术进步所能带来的软件生产率提高的速度,同时软件的可靠性也越来越难以保证。这样,软件的可靠性差和开发效率低一直困扰着软件产业的两大难题。众所周知,用形式化方法来开发软件一直被认为是提高软件可靠性和提高软件开发效率,克服软件危机的有效方法。
PAR方法是从软件形式化开始,研究软件开发的本质及其规律,逐步扩大开发中可形式化的范围,直至软件开发的完全形式化,在此基础上薛锦云教授提出了问题求解的递推关系概念、三种新的可重用部件模式、新的循环不变式定义和两种新的循环不变式开发策略。
这种方法结合形式化和非形式化,正确区分了软件开发过程中的创造性和非创造性劳动。在该方法的指导下,定义了Radl算法设计语言和Apla语言,Radl语言用于描述算法规约和抽象算法,Apla语言用于描述抽象程序。根据PAR方法,由算法规约到抽象程序,以及抽象程序到可执行程序的开发,属于非创造劳动,可以使用形式化方法积极机械地变换得到,而这个机械的变换过程可以由PAR方法中的一系列自动程序转换系统来完成,这样就实现了程序开发部分自动化。另外,由于PAR方法的程序开发是建立在PAR方法形式化的推导和证明基础上的,所以为软件开发在安全性和可靠性提供了很好的技术支持和保证。所以,使用PAR方法进行开发可以大大提高软件的可靠性和开发效率。
同时,Borland公司开发的Delphi同时兼备了VC功能强大和VB简单易学的特点,具有:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术等特性。所以如果能够通过PAR方法来正确的实现出Delphi程序将有重要的意义。
通过使用PAR方法,可以机械的得到用Apla语言描述的算法程序,再到相应的程序自动转换工具Apla-Delphi自动程序转换系统转换成可执行程序。
Apla-Delphi自动程序转换系统转由转换器和可重用部件库两部分组成。其中转换器实现Apla源程序到Delphi源程序的转换工作,它由词法分析器、语法分析器、语义分析器等构成。可重用部件库主要是用来支持转换得到的Delphi程序能在Delphi环境中编译通过并可运行,得到正确结果。本论文的工作就是对可重用部件库的内容扩充和完善。
1.2本文研究的内容和全文安排
本文主要进行了以下工作:
分析比较现有的形式化方法及其配套工具,并以PAR方法作为本文研究的理论基础。增加可重用部件库的内容。
研究Apla语言中的泛型程序设计机制转换为Delphi语言程序的方法。
研究Apla-Delphi转换器,实现Apla中的组合数据类型到Delphi中的具体实现。
完善Apla-Delphi自动程序转换系统。
全文共分五章进行论述。
第一章主要介绍软件形式化和PAR方法的思想及结构框架,及其国际上流行的一些软件形式化方法和所支持的工具。
第二章介绍了组合数据类型转换过程中所需要的关于Delphi的一些基础知识。
第三章详细阐述了支持泛型机制的Apla中自定义抽象数据类型的实现。
第四章详细阐述了组合数据类型在Delphi中的实现。
第五章是对本论文所做工作的展望和总结。
第2章 软件形式化........... 13-23
2.1 软件形式化........... 13-14
2.2 PAR方法........... 14-16
2.2.1 RAR方法总体........... 14
2.2.2 PAR方法的........... 14-16
2.3 实例应用........... 16-20
2.4 其他的形式化方法........... 20-22
2.4.1 Z方法........... 20
2.4.2 VDM方法........... 20-21
2.4.3 B方法(J .R............ 21-22
2.5 小结........... 22-23
第3章 DELPHI中的类类........... 23-34
3.1 Delphi中类类型........... 23
3.2 Delphi中类类型........... 23-25
3.2.1 类类型的...........23-24
3.2.2 类类型的........... 24
3.2.3 类类型的........... 24-25
3.3 Delphi中类类型组........... 25-29
3.3.1 数据封装........... 25-28
3.3.2 继承........... 28-29
3.4 举例........... 29-34
第4章 自定义抽象数据........... 34-41
4.1 抽象数据类型........... 34-35
4.1.1 抽象数据........... 34
4.1.2 抽象数据类型........... 34-35
4.2 泛型程序设计........... 35-36
4.3 自定义ADT类型........... 36-41
4.3.1 Apla语言泛型........... 36-37
4.3.2 自定义ADT类型........... 37-40
4.3.3 小结........... 40-41
总结
本文在多年的探索性工作之上,利用PAR方法和Apla-Delphi核心转换器,以自扩展的方式,正确的实现了Apla语言定义的组合数据类型,实现了Apla语言数据抽象的思想。由于Apla语言的抽象数据类型得到了实现,Apla程序具有了数学的“引用透明性”,有利于程序的形式化推导和证明。
作为Apla-Delphi自动程序转换系统的一部分,这个自定义的Delphi部件库很好地支持了Apla程序到Delphi程序的组合数据类型的转换,为实现PAR方法的研究目标—“提高程序的可靠性,提高程序设计的效率”,作出了贡献。事实也证明了,开发Delphi程序的效率和Delphi程序的可靠性均得到了提高。