编译原理01-引论
发布日期:2021-04-30 21:09:58
浏览次数:95
分类:精选文章
本文共 878 字,大约阅读时间需要 2 分钟。
文章目录
学习课程三要素- 端正学习态度:坚持上课!认真完成作业!
- 从内心深处:喜欢钻研底层技术!
- 多动手:PL/0编译器 + ANTLR工具
章节划分
- 2456语法分析(重点)
- 3词法分析(重点)
- 78语义分析(难点)
- (具体见下面1.3的各个环节展开)
第一章 引 论
1.1 什么是编译程序- 翻译程序:将一种语言(源语言)翻译成另一种逻辑上等价的语言(目标语言)的程序。
- 编译程序:源语言为高级语言,目标语言是低级语言(汇编或机器语言)的翻译程序。
1.2 解释程序
- 编译程序的功能和结构
1.3 编译过程和编译程序的结构
1.3.1 词法分析(扫描器,Scanner)- 从左到右,逐个字符读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出各个单词,并给予种别(属性)和内部形式(值)构成单词的内部表示。
1.3.2 语法分析(分析器,Analyzer)
- 在词法分析的基础上,对单词序列进行语法检查,分析源程序的语法结构,并用明确的结构(如语法树)表示。
1.3.3 语义分析
- 检查程序有无语义错误,为代码生成阶段收集类型信息,同时解释程序的意义。
1.3.4 中间代码生成
- 在词法分析、语法分析和语义分析完成后,将源程序转换为一种内部表示形式,称为中间代码。
1.3.5 中间代码优化
- 代码优化可多次进行,包括局部优化、循环优化和与机器有关的优化。
1.3.6 目标代码的生成
- 将中间代码转换为特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
1.4 编译程序的组织
1.4.1 前端和后端- 前端:与源语言有关,而与目标机无关的编译程序。
- 后端:与目标机有关,而与源语言无关的编译程序。
1.4.2 分遍(趟,PASS)问题
- 对源程序或源程序的中间结果从头到尾扫描并完成规定任务的过程。
1.5 编译程序的实现方法
- 预处理方法、移植法、自展法和工具法。
1.6 课后练习
【学习笔记汇总】
持续更新【学习资料】
- 教材:《编译原理(第3版)王生原》
- 软件下载:PL0(VS2010版)(待上传)
- 可能是PPT、GitHub等待补充
发表评论
最新留言
关注你微信了!
[***.104.42.241]2026年06月07日 16时02分20秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结)...
2023-03-02
php页面增加自选项,php-在Woocommerce中添加新的自定义默认订购目录选项
2023-03-02
php页面静态化技术;学习笔记
2023-03-02
php项目心得以及总结
2023-03-02
R&Python Data Science 系列:数据处理(4)长宽格式数据转换
2023-03-02
PHP项目集成支付宝PC端扫码支付API(国内支付)
2023-03-02
php预定义常量&变量
2023-03-02
R 集成算法③ 随机森林
2023-03-02
php验证码背景色设置无效
2023-03-02
php验证邮箱是否有效
2023-03-02
PHP高性能分布式应用服务器框架-SwooleDistributed
2023-03-02
PHP高效、轻量级表格数据处理库 OpenSpout
2023-03-02
R 数据缺失的处理
2023-03-02
php,nginx重启
2023-03-02
php:$_ENV 和 getenv区别
2023-03-02
PHP:PDOStatement::bindValue参数类型php5和php7问题
2023-03-02
Q媒体播放器.如何播放具有多个音频的视频?
2023-03-02
pickle
2023-03-02
Pickle thread.lock(Pymongo)
2023-03-02