Too young, too simple. Sometimes, naive & stupid

结构化程序设计方法

结构化程序设计方法出现的背景

  • goto语句是有害的
  • 可以从高级语言中消除goto语句,主张在高级语言中应保留goto语句,在功能方面不加限制,但限制其使用范围,切不必对一般用户开放
  • 争论的焦点不应该放在是否取消goto语句上, 应该放在程序的质量上

计算机发展的初期,评价软件质量主要看占内存容量的大小和运行速度的快慢

程序设计的目标

  • 不只是编写一个能够得到正确运行结果的程序
  • 关注程序结构的好坏,好的结构比高的效率更为重要

结构化程序设计的一个比较流行的定义是

  • 结构化程序设计(Srructured Programming)是一种程序设计的原则和方法
  • 限制和避免使用goto语句,采用”自顶向下,逐步求精”方法进行程序设计
  • 按照这种原则和方法设计出的程序的特点为:
    • 结构清晰
    • 容易阅读
    • 容易修改
    • 容易验证

结构化程序设计的目标

  • 为了得到一个好结构的程序
  • 有无goto语句,并不是程序结构好坏的标志

采用顺序、选择和循环三种基本控制作为程序设计的基本单元

坚持单入口单出口原则

  • 程序的静态结构和动态执行可以保持一致
  • 差异很大会给程序的流向分析带来困难,可读性差,易出错,不易查错

正规程序需满足下面两个条件

  • 具有一个入口线,一个出口线
  • 对每一个节点,都有一条从入口线到出口县的通路通过该节点

正规程序的某些部分仍是正规程序——正规子程序

基本程序

  • 不存在多余一个函数节点的正规真子程序(不可再分解的正规程序,不能抽象为多于一个的函数节点)
  • 封闭结构(若存在的话)都是正规程序
  • 任何一个结构化程序都是可以用这些基本程序来构成
  • 怼构造一个结构化程序来说并不都是必须的

复合程序

一个基本程序的函数节点用另外一个基本程序替换,所产生的正规程序称之为复合程序

复合程序的替换形式:堆叠,嵌套

基集合

用于构造程序的基本程序集合

结构化程序

由基本程序的一个固定的基集合构造出来的复合程序

  • 按照结构化程序设计的要求设计出的语言——结构化程序设计语言
  • 按照结构化程序设计语言(或结构化程序设计思想)设计的程序——结构化程序

结构化程序的特点:

无论从总体上还是从每一个组成部分来看, 都遵循“单入口单出口”的原则