结构程序设计

按照一定的原则和原理,组织和编制正确而且易读的程序的软件技术。它强调程序员的思维方法和设计风格,以降低程序和程序设计过程的复杂性,提高程序的清晰度,能在适当的时间内得到一个结构良好、易于理解和验证的程序。

程序设计的基本思维方法

程序设计是一种复杂的智力活动,而人的智力是有限的。对于复杂的问题,人们通常采用的主要思维方法是抽象、枚举和归纳。以这三条基本思维原则作为指导而提出的程序设计技术,可以把复杂的问题简化。结构程序设计是一种简化问题复杂性的思维方法。

程序的基本结构和结构化程序设计语言

为了描述正确而清晰的算法,需要研究程序的基本控制结构和基本数据结构的成分。按照结构程序设计的观点,任何一个程序都仅由顺序、条件和重复三种基本控制结构组成,同时尽量避免使用转语句。这样,可以使程序的动态执行和静态正文的结构趋于一致,从而使程序易于理解和验证。程序的基本数据结构有基本数据类型和复合数据类型两类。复合数据类型由基本数据类型按复合规则构成,从而清晰地描述出各种数据结构,并设计出相应的程序。

逐步精化和分层模块设计方法

为了设计一个复杂程序,首先须作出问题本身的确切描述,并对问题解法作出全局性决策,把问题分解成相对独立的子问题,对每个子问题用抽象数据及其上的抽象操作来描述;然后,再以同样的方式对抽象数据和抽象操作进一步精确化,直到获得计算机能理解的程序为止。这一过程称为逐步精化。任何一个大系统都可以按子结构之间的疏密程度分解成较小的部分,每部分称为模块。分解的原则须使模块之间相对独立,联系较少。按照不同的数据结构划分模块,使得提供给模块外部可见的只是抽象数据及其上的抽象操作,隐蔽了实现细节。整个程序是由层次的逐级抽象的诸模块组成。

程序正确性证明

数学方法证明程序是否满足功能规格说明。证明可以是形式的,也可以是非形式的。通常,程序正确性证明总是与逐步精化结合进行。随着逐步精化,同时加以验证或程序推导,以得到正确的程序。因此,程序正确性证明是结构程序设计中的重要辅助手段。程序正确性证明的发展,促进了程序逻辑、程序语义学和自动程序设计等课题的研究。

参考书目
  1. O.J.Dahl,E.W.Dijkstra,C.A.R.Hoarei,StructuredProgramming,Academic Press,New York,1972.
  2. E. W. Dijkstra, A Discipline of Programming,Prentice Hall,Englewood Cliffs,New Jersey,1976.