Skip to content

第三章 控制结构

Giovanna

About 385 wordsAbout 1 min

2024-06-30

控制结构:规定各个成分执行流程的控制机制

一、语句级控制结构

对语句执行顺序的控制。

1. 顺序

2. 选择

一般形式:if 条件 then 语句1 else 语句2

对于二义性的处理

  • ALGOL 60:begin ... end
  • PL/1、PASCAL:最近匹配原则
  • ALGOL 68:fi
  • Ada:end if

多重选择

  • PL/1:select
  • PASCAL、ALGOL 68、Ada:case

Dijkstra选择结构:对非确定性的抽象

if B1->S1
   B2->S2
   ...
   BN->SN
fi

3. 重复

  • 计数器制导:循环次数已知
  • 条件制导:循环次数未知

二、单元级控制结构

规定程序单元之间控制流程的机制。

1. 显式调用

调用单元以名字显式调用从属单元;从属单元执行完后,转移控制返回调用单元。

  • 参数绑定
    • 位置绑定
    • 关键字绑定
  • 副作用(对局部环境的修改)问题
  • 别名(在单元激活间两变量共享一数据对象)问题
    • 废除引起别名的结构
    • 限制指针、变参、全局变量、数组

2. 隐式调用

通常用于异常处理,被调用单元是隐含的。

3. 协同程序

两个或两个以上程序单元之间交错执行的程序。(单元间彼此显式激活)

SIMULA 67

4. 并发单元

各单元组成一组并发或并行单元或进程,彼此之间不存在调用和返回,而是并行执行。