3
参考书目: 1.编译原理及实践,Kenneth C.Louden,机械工业出版 社 2.编译原理,吕映芝,清华大学出版社 3.编译原理. (美)阿霍(Aho, A. V.)等著. 李建中等译. 北京: 机械工业出版社, 2003.8 4.现代编译程序设计. (荷)格伦(Grune, D.) 等著. 冯博琴 等译. 北京:人民邮电出版社, 2003.9 5.陈意云,编译原理和技术(第二版),中国科大出版社, 1997 6.陈意云、张昱,编译原理习题精选,中国科大出版社, 2002
12
1.2 编译过程概述
翻译外文资料与编译源程序进行类比
翻译外文资料 分析 编译源程序
识别单词 词法分析 分析句子语法结构 语法分析
初步翻译句子含意 语义分析及中间代码产生
综合
译文修饰 写出译文
代码优化 目标代码生成
13
第一阶段 词法分析(Lexical analysis) 输入源程序,对构成源程序的字符串进行扫描和分解,识 别出一个个单词(也称单词符号,或简称符号)并转换成 内部形式。 输入:源程序中的字符流 输出:等长的内部形式,即属性字。 在词法分析阶段工作所依循的是语言的词法规则。描述词 法规则的有效工具是正规式和有限自动机。
14
词法分析举例
例子,hoo.c: main() { float position, initial, rate; position = initial + rate * 60; } position = initial + rate * 60 scanner id1 = id2 +
标识符
字符流
id3
*
60
记号流
赋值运算符 标识符 加运算符 标识符 乘运算符 整型常量