程序的结构和控制流与数据流
程序的结构在过程式程序设计中,发生了“显著的变化”,称为结构式程序。程序语句是顺序方式,C1;C2;...;Cn,Ci(1<=i<=n)是赋值语句,条件语句和循环语句。条件语句if B->C1|C2,可表示为
B]C1.or. -B]C2
这里"]"表示B是C1执行的充分条件,并且B]C1是一条路径。-表示否定词,-B是B的否定,-B]C2表示对立条件时的路径。因此,if语句有两条输出路径。循环语句while B*C在程序分析中,每一次迭代表示一条路径,原因是迭代的前后程序的状态发生了变化。
在程序分析中,程序的状态(state)是在一个程序点,所有变量的值组成,有时用线性代数的向量表示。程序状态与程序的configuration或者程序的interpretation相似。
编译程序中的控制流和数据流,目的是决定程序中有多少个执行路径(execution path)。