一种系列化语言族及其软件工程环境

时间:2023-03-03 12:02:16 硕士毕业论文 我要投稿
  • 相关推荐

一种系列化语言族及其软件工程环境

  一、历史背景
  
  多年来一直困扰程序技术研究领域的一个根本问题是计算机程序难写、难读、易错、难以维护,致使软件生产率很低。对比之下,计算机应用的发展及硬件生产率的提高却非常快,很不匹配,针对这个问题,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
  
  既是[ylaflna—Pnueli意义下的线性时间时序逻辑系统又是一程序语言。事实上,它是一系列化语言族(XiliehuaYuyanZu) 它以统一的程序框架表示串型或并发的过程性算法、抽象描述及产生式规则,还可以表示常见高级语言及多种图形语言(如数据流图,PAD图,Petri网等)的操作语义。其基本结构称为单元,具有如下的形式下面讨论几个问题(1)形式语义方法很多,为什么XYZ系统独选时序逻辑?关于时序逻辑的优点,L.Laml~t在1983年FFLP巴黎大会上已谈了很多,此处不拟一一重复.我只想指出如下的事实:不但一般程序工作者对一阶逻辑都比较熟习,而且,事实上时序逻辑中新增加的算子,都与常见高级语言中某些结构有直接的对应,比如下一时刻算子。$O”对应着状态转换的一步,二目算子。$u”与。$W”事实上直接与循环结构相对应,而终于算子“()”则对应着过程。所以,与其它形式化理论相比,时序逻辑这一形式化理论对一般程序工作者说接受起来较为自然。(2)在时序逻辑系统中·xY'Z/E有何优点?人们对时序逻辑的批评往往集中在一点,即认为时序逻辑描述令人难懂、难以验证 事实上,就单一的时序算子讲其涵义是比较易懂的,这里所谓难懂难证,我认为主要是指用多层嵌套的时序算予表示复杂的性质而盲·而XYZ/E中引入的单元中,每一条件元只允许出现一层时序算子.不允许嵌套,故并不存在难懂的问胚 近年来.在国外颇受重视的Chandy—Misra的UNITY中“性质”也是用一层时序算子来表示的 不过.由此又产生另一问题t经过这样的限制之后,XYZ/E中的单元是否仍能有一般时序逻辑公式同等的表示力?我们已经证明,存在一机械的方法将任给的一时序逻辑公式转换成等值的XYZ/E中一组单元 因此,XYZ/E中单元具有足够强的表示力。XYZ/E的另一特色,即用统一的单元框架可以表示出申型的或并发的过程性算法、抽象描述及产生式规则·此外.还可表示出常见高级语言及图形语言的操作语义。这一功能是一般时序逻辑公式所难以做到的。(3)在前面谈到XYZ/E的单元框架可以表示出多种程序结构,这一特色在程序设计方法论方面有什么重要意义?(a)逐步求精方法是一由抽象描述到可有效执行的算法程序的多层转换过程,因此,在中间各层中必然出现抽象程度逐渐减弱而程序细节逐渐增加的程序 这不同层次的程序如用不同语言来描述,则将遇到一个问题,即如何验证(甚至说明)其语义一致性?由于这个原因,经过多年研究,专家一致承认,还是用统一的语言表示各层的描述为好。但到现在止.除XYZ/E外,尚未见到另一逻辑语言能做到这一点。故这种表示力正是XYZ/E的长处所在。(b)近数年来,基于知识的程序设计颇受人注意。在这样的程序中必然需要将表示算法的部分与表示知识的部分渗合运行。显然. 如果能用统一的语盲及统一的计算模型来表示这两类程序, 不但会增加程序的可读性与可理解性,而且也易于讨论这种程序的性质。据知,在逻辑语言中能做到这一点的尚属少见。(c)由于XYZ/E能表示常见高级语盲及图形语言的操作语义,故可从它们直接自动生成表示其语义的XYZ/E文本。这一特色即使得这三类语言可相互沟通,从其一可得到其它,这一点在软件工程环境中有重要意义 比如说, 为了讨论数据流图分解前后的语义是否一致,不必从图形上讨论, 只要根据其相应的XYZ/E语义文本来讨论即可。这就大大增强了图形语言的性能。由于XYZ/E具有这种统一性.使不少专家相信,XYZ/E很适于作新型计算机的核心语言t XYZ/E是最先讨论这种统一性的语言。近年来. 已有不少人开始注意到这种范型统一性的重要意义。
  
  三、软件工程环境
  
  XYZ系统以上述时序逻辑语言XYZ/E为基础,由多种软件工具与环境组织成一协调的系统.以支撑多种程序设计方法和方式 总的讲.其中子系统可分支撑逐步求精方法设计可重用软件及支撑不同语言问的形式转换二类逐步求精方法又可分成二种:(I)每一步对原有描述进行组合性(即结构化)分解,其每一步分解并不改变原来的总体结构,只是将其中某些部分予以精化I(Ⅱ】每一步精化都是在上一步的基础上对解题方法作出新的决定,然后再根据此新的决定由非形式化描述逐渐过渡到形式化描述。因此,每进行这样的一步, 必须保证由于该步新决定得到的描述与上一步描述的语义一致性。可以说. (Ⅱ)比(I)更为一般一些, (I)是(Ⅱ)的较简情形。(I)是较常用的方法,但对于某些复杂的问题.(I)的方法难以处理,需要用方法(Ⅱ)。
  由于图形的二维直观性,近年来图形程序设计环境在软件工程领域十分流行 XYZ系统中也提供一图形环境以支撑(I)所示的逐步求精方法,其核心为下面二类图形环境连接面成,(a)设计数据流图的环境XYZ/DFD,(b)设计算法程序的图形环境XYZ/CFC及XYZ/PAD,后者是前者的结构化形式,其图形为结构化程序流图PAD与Petrl阿的结合体。
  用户先通过XYZ/DFD进行数据流图分析与设计,并可在每一步对图中表示进程的节点进一步分解成子数据流图。这环境具有如下特色.第一,其数据流图中每一节点的输入输出端隐含着同步机制。所以,由此作出的数据流图事实上是通讯进程的图形 第二,每设计出一个层次的数据流图后,只要给出进程节点的语义信息(事实上是前置条件与后续条件),系统即可自动生成该图用XYZ/E表示的操作语义文本(即XYZ/E程序,并由此可进一步自动生成C语言程序)。每次对其中节点进行分解成子数据流图后,可根据分解前后生成的XYZ/E程序,严格地验证或测试分懈前后语义是否一致。第三,这里所谓验证,即验证分解后的描述是否可推出分解前的描述。这种验证可以手工方式进行也可以在计算机上以交互方式进行。
  为了支撑后一种验证,XYZ系统中实现了一关于时序逻辑公式及XYZ程序的验证系统XYZ/VERI。因程序验证是一繁重的工作,并非每一程序都需用这种途径来评估其正确性。为此,XYZ系统中又提供了另一测验程序的途径,其子系统XYZ/PROT事实上是将每一步设计出的抽象描述作为速成原型用PROLOG予以执行的系统。利用此系统执行每一步分解前后的抽象描述,即可测试其语义是否一致。
  在程序设计过程中应用XYZ/DFD进行通讯进程分解到一定程序后,卵不必再作此种分解,而转入XYZ/PAD,用PAD图进行算法程序设计,这系统提供的图形工具功能比单纯作结构比程序流图PAD要强一些,它也可以逐步求精将其中算法节点分解成子PAD图,而且它还可作Petri网以表示具有共享变量的并发进程。与XYZ/DFD一样,每一步设计出这种PAD图后,亦可自动生成其XYZ/E程序,并验证或测试(作速成原型执行)正确性。
  与(I)那种按用户决定逐步求精方法相应.XYZ系统还提供一设计可重用程序的环境XYZ/SPEC 其中,一个工具XYZ/SDL辅助用户从决定的非形式描述到形式化描述的过渡{另一工具XYZ/REUSE用来存放每一步设计的描述, 以备重用或者检索过去曾设计过的描述看是否可重用,并纪录全设计过程的历史}每一步描述既可作为速成原型执行亦可验证前后步描述的一致性。由于这种描述中可能包含通讯信息,用PROLOG已不能胜任,为此,XYZ系统中提供另一功能更强的速成原型工具XYZ/RULE,它可执行通讯进程的抽象描述。xvz/SPEC系统不咀可增强程序的可重用性,而且可使抽象描述易写、易读、易证。因如一程序的抽象描述用一个式子一次写出,其中必应表示所有各种决定包含的信息,这样的描述必然非常复杂,因此写、读、证都将很困难 而XYZ/SPEC所依据的方法论是将整个设计过程分懈为一连串逐步求精的步骤’, 每一步只作一个决定,因此,每一步的描述比上一步只增加一个决定的信息。而且各次决定构成的历史均有案可查,每步的设计意图清晰, 自然就容易书写与理解。这是此方法论的优点所在至于不同语言的形式转换,是由两个子系统组成的,首先,源语盲的静态语义分析系统XYZ/GPAE,这是一属性文法计算系统,不过它可根据-级文法对属性进行分块以减少内存开销·在对源语言进行静态检查(如类型一致性、辖域规则等)后,系统将作一些替换以消除源程序中的与上下文相关信息(如嵌套辖域中定义的同名量等)。这部分事实上还包含一语法分析器YAYACC,其用户界面为YACC,但所处理的文法是LR(1),且极大程度上进行状态优化及加速。其次,源语言的动态语义转换系统XYZ/CC~S,用源语言XYZ/ML表示将源语言的操作语义转换成XYZ/E程序的替换规则,这系统运行的结果即将源程序转换成XYZ/E程序.而由XYZ/E转换成任何常见算法语言都非常简单·这两部分连接起来即可将一源语言程序以XYZ/E为中介转换成另一源语言。因此,XYZ系统不但能接受XYZ/E中各子语言及相应的多种图形语言,而且还能实现其它常见语言的转换与沟通。
  整个XYZ系统通过面向多种对象的模块管理系统XYZ/OOMM联系起来.可进行图式管理与版本控制,并以统一的面向对象的模块管理作为入12将各部分集成为一整体。
  
  四、应用前景
  
  XYZ系统对程序技术研究30年来所提出的各种主要问题作了一较为全面的回答 当然,这种问题的答案并不唯一,XYZ系统也并非在每一方面都找到了一最优方案。事实上.目前世界上也还没有系统能做到这一点。但有一点不必讳言.XYZ系统中有许多思想是由这系统最先提出且有不少方面目前仍处于世界领先地位。有的同行认为它。将是一次重大突破的基础 ,“有使软件生产率取得重大提高的实际应用前景”。因此,对这系统的最终评价还应该看今后的应用效果 在这方面, 我们已与有关领域的专家合作进行了一些有益的尝试。
  我们认为.XYZ系统的应用应该从二方面人手。一方面将它看成是一工具集,它是UNIX及Xwindow上的一种扩充.用户可直接从这系统中选取所需的工具予以应用{系统中工具虽已集成为一完整的系统.但均可拆开引用 当然.用户必须对XYZ系统有了较深的了解,才能灵括运用这些工具。另一方面.为了使这系统在某些重要工业领域能更方便地应用,我们认为应找出最台适的领域中有代表性的用户.根据其工作的特点,在XYZ系统的基础上.建立有针对性的专用环境。其中工具主要由XYZ系统中选取加以组合.也可根据其工作特点稍作修改或补充,集成的专用环境必须十分符合该领域专业人员的工作习惯,使之不经太多训练即可使用。因此,这样的专用环境最好与该领域专家合作研制。在过去一年中我们已经初步开展了一些这方面的工作,计划今后将研制如下几类专用环境,(1)实时过程控制.(2)通讯协议工程,(3)硬件描述.(4)软件更新的重新程序设计,(5)实时仿真系统中并发通讯进程程序的自动生成。

中国硕士论文网提供大量免费硕士毕业论文,如有业务需求请咨询网站客服人员!

【一种系列化语言族及其软件工程环境】相关文章:

试论汉语言文化对英语学习的负面影响及其对策05-28

试论诚信及其价值06-01

论文写作及其研究的特点06-19

隐私权及其探究06-03

韩愈的师说及其影响10-19

论文答辩问题及其答案07-26

“虚拟财产”及其权属的法律特征05-28

“上帝死了”及其历史意义05-24

行政执法文书及其规范05-22

汉英叠词对比及其英译06-12