论文部分内容阅读
从60年代“软件危机”爆发至今,人们一直经受着“软件危机”的困扰。软件的生产效率和可靠性远远满足不了社会发展的需要:一方面,软件故障给人们的生命和财产造成了巨大的损失;另一方面,社会对软件的需求量日益增加,而程序员每年所能开发的有效代码却仍然是少之又少。如何才能更高效地开发出更可靠的软件产品是软件开发技术和软件工程技术所要解决的重要问题。为了更好地解决这两个至关重要的问题,PAR方法应运而生。而本文所研究的APLA程序到JAVA程序自动转换系统则是PAR方法的重要支持工具,同时,也是多个国家自然科学基金课题的重点研究内容之一。它是在自动化和形式化理论及程序转换技术的基础上构造而成,能够将PAR方法推导出的APLA程序进行转换自动生成可执行的JAVA程序,是PAR方法支持软件开发的全过程提供了强有力的工具支持。同时,它也可作为一个独立的软件工具来使用。 围绕着程序转换系统的设计与实现,本文主要完成了如下工作: 1、研究Apla语言与JAVA语言的对应关系,寻找把Apla语言转换为JAVA语言的规律; 2、在自定义JAVA可重用部件库中构造了支持转换器所用必须的输入流类、泛型类及接口和五种抽象数据类型的两种实现。 3、用程序实现上述转换,即实现Apla->JAVA程序自动转换系统,使之能够实现对简单数据类型及复合数据类型的处理。其中转换器部分由2万7千余行代码实现。 4、使用APLA语言对典型算法进行描述,并将其转换成可执行的JAVA程序。 5、实现了自动转换系统的泛型问题中的类型参数化问题,解决了APLA提供泛型机制,而JAVA语言不支持泛型机制的矛盾。 就已实现的转换系统,我们使用APLA对典型的算法如:非递归遍历二叉树、dijkstra、拓朴排序、最小生成树、非穿线树实现中序前导等算法进行描述转换,能够达到有效提高软件开发可靠性和效率的预期目标,从而可取代软件蓝领,完成机械性和非创造性工作。