编译原理学习笔记(一)体系结构
编译原理学习笔记(一)体系结构编译原理关键知识点词法分析:正则表达式、自动机DFA/NFA语法分析:BNF范式、抽象语法树、递归下降Parsing语义分析:属性文法、类型检查、符号表、作用域、中间代码生成代码优化:现代编译器常用的优化方法及其原理汇编指令:堆栈式虚拟机的原理与实现编译原理学习资料编译原理与实践编译原理与实践课后习题答案Stanford cs143 Compilers
·
编译原理关键知识点
- 词法分析:正则表达式、自动机DFA/NFA
- 语法分析:BNF范式、抽象语法树、递归下降Parsing
- 语义分析:属性文法、类型检查、符号表、作用域、中间代码生成
- 代码优化:现代编译器常用的优化方法及其原理
- 汇编指令:Stack based 与 Register based 虚拟机的原理与实现
编译原理学习资料
- 编译原理与实践
- 编译原理与实践课后习题答案
- Stanford cs143 Compilers
- Parsing Techniques
- write-a-C-interpreter
- Lua-Source-Internal
- 怎样写一个解释器
编译器的体系结构
基本的编译程序由词法分析、语法分析、语义分析与中间代码生成、代码优化、代码生成、符号表管理、出错处理七个功能模块构成。
编译器的工作阶段大致如下:
源代码 --> 扫描程序(scanner): Token
--> 语法分析(parser): 语法树
--> 语义分析(semantic analyzer): 注释树
--> 源代码优化(source code optimizer): 中间代码
--> 代码生成器(code generator): 目标代码
--> 目标程序优化(target code optimizer): 目标代码
贯穿全部的有:文字表、符号表、错误处理器
涉及的算法与数据结构:
- token,自动机算法
- syntax tree,递归下降算法
- symbol table,贯穿所有阶段,要求快速插入、删除与访问
- literal table,存放在程序中用到的常量和字符串,要求要快速插入和查找
- temporary file,保存多次用到的某些运行步骤中生成中间文件
掌握好编译原理,才能对编程有更深刻的认识。
更多推荐
已为社区贡献3条内容
所有评论(0)