Type: concept
Confidence: 0.95
Created: 2026-04-17
Updated: 2026-04-17
Tags: 技术研究历史计算理论

结构化编程

概述

结构化编程是一种编程范式,主张程序应当仅使用顺序执行、条件选择和循环三种基本控制结构来组织,消除 goto 语句带来的控制流混乱。由 Edsger Dijkstra 在1968年开创。

关键内容

三种基本控制结构

  1. 顺序执行(Sequencing):语句按照书写顺序依次执行
  2. 条件选择(Selection):根据条件执行不同的分支(if-then-else)
  3. 循环(Iteration):在条件满足时重复执行一段代码(while-do)

加上过程调用作为组织手段,这四种结构共享一个关键特性:单一入口、单一出口(single-entry, single-exit)。

理论基础

Bohm-Jacopini 定理(1966年)从数学上证明了:任何使用 goto 语句的程序,都可以用仅包含顺序、选择和循环三种结构的等价程序来替换。这意味着 goto 在表达能力上是冗余的。

Dijkstra 的核心论证

Dijkstra 用"坐标系"类比论证了 goto 的危害: - 顺序执行:只需一个数字(文本索引)描述执行位置 - 过程调用:需要一个栈 - 循环:文本索引 + 循环计数器 - goto:没有任何规则的坐标系可以简洁描述

历史影响

当代延续

来源

相关