编译原理主观题(转)
编译原理——期末整理
1.前言
介绍编译原理,了解一个新的领域,得去了解它的整体框架
- 词法分析
- Thompson算法,子集构造算法(DFA,NFA),Hopcroft算法
- 语法分析
- LL(1),消除左递归,提取公共左因子,构造预测分析表,分析过程
- LR(0),构造DFA,构造LR(0)分析表,进行语法分析,写出过程
- 短语,巨型,产生式,直接短语,句柄概念
- 语义分析(语法制导翻译)
- 逆波兰表示法
- if,while的逆波兰
- 中间代码生成(生成汇编)
- 数组、if、while的中间代码
- 代码生成优化
- DAG图的优化
- 执行汇编(3地址或4地址代码的汇编执行)
2.词法分析
1.根据语言写出文法产生式
2.构造与某一正规式等价自小DFA
DFA(Deterministic Finite Automation):确定有限自动机
NFA(Non-Deterministic Finite Automation):非确定有限自动机
解题步骤:
- 1.根据正规式画出对应状态的状态转换图
- 2.根据状态转换图画出对应状态
- 3.根据状态转化矩阵得到重命名的状态转换矩阵
- 4.根据重命名状态转换矩阵得出DFA
3.DFA化简
解题步骤:
- 1.划分初态集合和终态集合
- 2.划分
- 3.画出新DFA
4.总结
3.语法分析
1.消除左递归
2.LL(1)分析法
LL(1)3个条件:
3.根据产生式画出语法树,写出短语,直接短语,句柄
4.LR(0)分析法
4.语义分析
1.逆波兰表达式(只考算术表达式)
5.中间代码生成
1.数组,if语句,while的翻译
5.优化
DAG图优化
本文作者:Steve Yu's blog
本文链接:https://www.cnblogs.com/littlepage/p/12099968.html
知足上进且温柔
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee