编译原理
本笔记着重于语义分析和后端优化部分,正则、文法等内容都仅作相当简单的介绍。你可以通过 哈工大-形式语言与自动机 课程来系统学习。
📄️ Note1-词法分析
词法分析阶段的任务,简单来说就是从左到右扫描源程序,根据词法规则识别单词,并转换成统一表示的 token 串,它包括:
📄️ Note2-语法分析
词法分析是以字符为单位,通过正则语言构造出一串 token 序列;而语法分析是以 token 为单位,通过上下文无关文法构造语法分析树。
📄️ Note3-语法制导翻译
所谓语义分析,就是根据程序的代码的上下文相关信息进行静态语义一致性和完整性的检查,如:
📄️ Note4-中间代码生成
在这一部分,我们将学习各类语句的翻译,包括声明语句,赋值语句,控制语句,witch语句,过程调用语句等。
📄️ Note5-运行存储分配
编译器在工作过程中,必须为源程序中出现的一些数据对象分配运行时的存储空间。
📄️ Note6-代码优化
流图
📄️ Note7-代码生成
终于来到了最后一部分,就是根据中间代码生成目标代码
学习资料
- 【编译原理】哈工大公开课
- Compilers: Principles,Techniques,and Tools 又称龙书