编译器设计01-入门概述

编译器作用概述

源代码 → 编译器 目标代码 源代码\xrightarrow{\ \ \ 编译器\ \ \ }目标代码 源代码 编译器 目标代码

编译阶段概述

编译处理包括两个阶段:前端处理后端处理 ,中间过程生成语法树

编译处理:源代码 → 语法树 → 目标代码 编译处理:源代码\xrightarrow{{}}语法树\xrightarrow{{}}目标代码 编译处理:源代码 语法树 目标代码

前端处理 : 源代码 → 分析 语法树 前端处理:源代码\xrightarrow{\ 分析\ }语法树 前端处理:源代码 分析 语法树

后端处理 : 语法树 → 综合 目标代码 后端处理:语法树\xrightarrow{\ 综合\ }目标代码 后端处理:语法树 综合 目标代码

编译过程概述

编译好比英文文章翻译中文文章,源代码是英文文章,目标代码是中文文章,语法树体现翻译要点各种关系,是你翻译过程的主要笔记。从高级语言到机器语言,从书本语言到笔记语言,编译器的好坏,决定了翻译的质量。语义不变是红线,在此前提下要尽量简洁清楚不说废话,让人好懂。

前端处理概述

前端处理:词法分析语法分析语义分析

前端处理犹如阅读英文文章,往往我们需要先理清文章中各个词的意思,这类似词法分析;再梳理整篇文章的脉络,这类似语法分析;再检查文章的议论是否逻辑正确、叙述是否前后连贯、抒情是否价值观一致,这类似语义分析。

后端处理概述

后端处理:中间代码生成目标代码生成贯穿各个阶段的优化

后端处理犹如得出中文文章,当阅读完英语文章后,你的脑海中就有清晰的"中间代码"了,想写作的时候就心中有数,核心论点是什么,论据是什么,文章就有个层次,你会通过合理规范的形式把它们统一起来,经过翻译润笔(优化加工)便得到最后的文章中文译本。

相关推荐
.生产的驴1 小时前
SpringBoot AOP切入点表达式
spring boot·后端·python
逆水寻舟2 小时前
算法学习记录2
python·学习·算法
B站计算机毕业设计超人2 小时前
计算机毕业设计Python深度学习美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js
大数据·python·深度学习·机器学习·数据分析·课程设计·推荐算法
码农超哥同学2 小时前
Python面试题:请解释 `lambda` 函数是什么,并举一个例子
开发语言·python·面试·编程
sssjjww2 小时前
python输出日志out.log相关问题(缓存机制)
java·python·缓存
Uluoyu3 小时前
python爬虫爬取中国国际招标有限公司
开发语言·爬虫·python
Python私教3 小时前
zdppy+onlyoffice+vue3解决文档加载和文档强制保存时弹出警告的问题
vue.js·python
菜鸟赵大宝3 小时前
【Python】Python中TODO的用法解析
python·pycharm
Narutolxy3 小时前
如何高效管理和迁移Python开发环境:从Conda到纯Python的转换指南
开发语言·python·conda
萌狼蓝天3 小时前
[python]Markdown图片引用格式批处理桌面应用程序
开发语言·python