如果我们把源程序记为S,目标程序记为T,编译程序记 为C,那么可以将编译看成一个函数,种映射: T=C(S) 6
6 如果我们把源程序记为S,目标程序记为T,编译程序记 为C,那么可以将编译看成一个函数,一种映射: T=C(S)
812编译程序的结构 编译程序将源程序变换成目标程序,这是个复杂的过程,通 常分成五个阶段和两个附加部分: 、词法分析阶段 对组成源程序的字符串进行扫描和识别,识别出一个个具 独立意义的单词(或称符号),如基本字,o,be出的 等)、标 识符、常数、运算符、界符(括号,=,;等),将识别 单词用统一长度的标准形式(也可称为内部码)来表示,对 以后的变换来说,这种标准形式对区分单词和单词的属性 应是十分方便的。因此词法分析是将字符串变换成单词符 号流。 语法分析阶段 在词法分析输出的单词流基础上,根据源语言的语法规 则分析这种单词流是否正确地组成了各类语法单位,如 短语、子句、程序段和程序等。例如2*3.1416RR是表 达式,单词符号:=后应跟着一个表达式作为赋值语句的 右部等。 7
7 §1.2 编译程序的结构 编译程序将源程序变换成目标程序,这是个复杂的过程,通 常分成五个阶段和两个附加部分: 一、词法分析阶段 对组成源程序的字符串进行扫描和识别,识别出一个个具 独立意义的单词(或称符号),如基本字(if, for, begin等)、标 识符、常数、运算符、界符(括号,=,;等),将识别出的 单词用统一长度的标准形式(也可称为内部码)来表示,对 以后的变换来说,这种标准形式对区分单词和单词的属性 应是十分方便的。因此词法分析是将字符串变换成单词符 号流。 二、语法分析阶段 在词法分析输出的单词流基础上,根据源语言的语法规 则分析这种单词流是否正确地组成了各类语法单位,如 短语、子句、程序段和程序等。例如2*3.1416*R*R是表 达式,单词符号:=后应跟着一个表达式作为赋值语句的 右部等