【编者按】网学网硕士毕业论文频道为大家收集整理了“一种系列化语言族及其软件工程环境“提供大家参考,希望对大家有所帮助!
一、历史背景
多年来一直困扰程序技术研究领域的一个根本问题是计算机程序难写、难读、易错、难以维护,致使软件生产率很低。对比之下,计算机应用的发展及硬件生产率的提高却非常快,很不匹配,针对这个问题,30多年来,程序技术的研究可分为三个阶段 。
1. 高级语言时期。从60年代初起,人们认识到, 为了解决程序难写、难读、易错,难以维护的困难,应将书写程序所用的程序语言与在计算机上执行的机器语言区分开来。后者主要表示程序如何执行,即“怎么做”(how),而前者主要表示程序的涵义或功能,也就是“做什么”(what)。提高程序设计效率的途径应该是:一方面设计更直接表示程序涵义且使用更方便的程序语言,另一方面找出有效方法能实现由这种程序语言书写的程序到可高教执行的机器语言程序的自动转换。60年代的巨大成就,即在于设计出了各种具有高级控制结构及数据结构能表示算法的程序语言,同时,又创造了由程序语言到机器语言的自动转换技术,即编译技术。然而,随着软件应用的飞速发展,软件规模及其复杂度的不断增大,高级程序语言显得仍不够理想, 用这类语言书写的程序中仍包含了太多的执行细节,从而仍使用户感到难写、难读、易错与难以维护,也就是说,程序可靠性仍然是一个困难问题.因此,到了70年代,程序技术研究进入集中对程序可靠性进行讨论的时期。
2.结构程序设计时期。主要进行三方面工作,(i)程序语言研究,可分二类:(a)结构他高级语言,即重新评议常见高级语言中的控制结构及数据结构,其最后结果即Ada。到此,高级语言的研究走到了极限。的确进步很大,但所希望达到的目标并未达到,Ada程序仍然有难写、难读、易错等方面的问题。只得另求出路,研制另一种语言。(b)抽象描述语言(印q触 m缸n )。这是比高级算法语言更能直接表示“做什么 的涵义,且更抽象更少表示“怎么做 细节的程序语言。它们多从某种形式语义理论转化而来.如数理逻辑、抽象代数、形式文法或可计算理论等。它们与高级算法语言有本质的不同。对于它们,事实上不存在将其描述自动转换成可有效执行的机器语言程序的编译方法。(ii)程序设计方法论的研究。即找出如何设计-t确程序的好方法。这方面的探索虽然很多,最为人们接受的一种则是逐步求精方法,即先从表示程序涵义的抽象描述出发,逐步精化,晟后得到一可有救执行的正确程亭。
与程序设计方法及语言的台理结构相对应,还有另一影响大型软件可靠性的因素,即(iii)大型软件开发计划的组织与管理,包括各个环节的文档资料等。以上三方面的的探索,构成了70年代结构程序设计研究的主要内容。到70年代末,微机终端出现,使计算机本身有可能成为支撑上述三方面工作的辅助手段。从而使程序技术研究进入一新的时期。
3.自动程序设计时期。这方面的工作是从实现程序设计的各环节中某些自动化软件工具开始的,逐步发展到覆盖整个软件生命周期各部分,以一致的方法为依据,将各部分工具集成为统一的环境,以支撑软件开发的全过程。这就是所谓计算机辅助软件工程环境(即CASE环境)。近年来,一方面由于影响软件生产率很大的程序可重用性研究要求程序应有精确的形式语义界面,另一方面由于CASE环境规模及复杂度大到一定程度后,如其中各种工具没有统一的形式语义界面则既难引用亦难由不同工具组成功能更强的工具,故基于形式语义的CASE环境日益成为人们注意的新方向。
XYZ系统就是在这样的条件下提出的。它是最先提出并是唯一完成了的基于时序逻辑的CASE环境。它由二个方面构成,一方面是作为核心的时序逻辑语言xvz/E}另一方面是由依据多种方法及软件工具组成的CASE环境。它的另一特色是能适应多种程序设计方式
二、时序逻辑语言xvz/EXYZ/E