1.## 什么是编译器?
将: 源程序———编译器———目标程序
2.核心功能
编译器结构
更加复杂的一种
3.编译器实例
源语言Sum
两种语法形式:
整型数字:n
加法:e1+e2
栈式计算机Stack
一个操作数栈
两条指令:
压栈指令:push n
加法指令:add
举例:编译程序1+2+3到栈式计算机
首先这个是一个后续便利(post—order)
先访问1,再2再加再3再加
push n
push 1
push 2
add
push 3
add
所以我们知道:
编译器构造与具体的编译器目标有关!!!
4## 词法分析
源程序——前端——编译器——后端——目标程序
前端
举例:
小结
5.关键字表算法
6. 词法分析
1.正则表达式
字符流——词法分析器——记号流
举例:
标识符
关键字
语法糖