编译过程:
1、词法分析
作用:输入源程序,对构成源程序的字符串进行扫描与分解,识别符号
(如:单词翻译)有限自动机
2、语法分析
作用:在词法分析的基础上,根据语法规则把单词符号串分解成各类语法单位(语法范畴)(如:单词组成短语)上下文无关文法
3、语义分析与中间代码生成
作用:对各类语法单位按语言的语义进行初步翻译(如英语句子初步翻译)属性文法
4、代码优化
作用:对前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码
5、目标代码产生
目标代码的三种形式
汇编指令代码:需要进行汇编
绝对指令代码:可直接运行
可重定位指令代码:需要连接
出错处理
源程序中发现错误,把有关错误信息报告程序员
错误的类型
①语法错误
不符合语法(or词法)规则的错误。(非法字符,括号不匹配,缺少)
②语义错误
不符合语义规则的错误。(说明错误,作用域错误,类型不一致)
词法规则
单词符号形成的规则。(常数,标识符,基本字,算符,界符等)
语法规则
语法单位构成的规则。(表达式,程序,函数等)