论文部分内容阅读
形式化方法是克服“软件危机”,实现软件自动化的关键技术,算法设计的软件设计的灵魂。薛锦云教授对算法程序进行深入地研究,提出了一种基于分划和递推关系的算法程序设计形式化方法——PAR方法。用形式化方法进行软件开发,第一步就是要给出问题的精确定义,即问题的规约。然而,为了避免自然语言表示的二义性,现有的形式化方法都是用数学方法来描述规约,要求使用它的人要熟练地掌握相关领域的数学知识,因此也就在一定的程度上限制了形式化方法的应用和推广,这是本文的研究动机所在。 本文对算法规约和自然语言进行了深入的研究,提出了一种基于结构化自然语言(Structured Natural Language,简称为SNL语言)的算法规约描述方法,取得了如下成果: 1.针对算法规约的描述问题,本文提出了一种以自然语言为基础、辅助于初等数学公式、基本量词运算和抽象数据类型的SNL语言,并定义了SNL语言的语法结构。用SNL语言来描述算法规约,就不需要掌握很深的数学理论,只是熟练掌握SNL语言就可以了。 2.针对自然语言表示的多样性问题,本文收集了用自然语言描述算法规约的相关词语,创建了一个自然语言-算法规约双语语料库。 3.算法规约中的断言比较复杂时,就难以用一个式子表示出来。针对这一问题,本文提出了在SNL语言中用与子句形式来描述算法规约中的断言。用与子句来描述断言,更接近于人的思维习惯,又简单直观。 4.本文在SNL语言中定义了一个算法语料库,这样可以把已有的库函数加入进来,利用现有算法可以构造更复杂的算法程序的规范。 5.采用面向对象分析和设计技术,利用Java语言实现了把SNL语言表示的算法规约到RADL语言算法规约的转换系统。