编译原理入门:词法分析、语法分析与语义分析详解
创作时间:
作者:
@小白创作中心
编译原理入门:词法分析、语法分析与语义分析详解
引用
CSDN
1.
https://blog.csdn.net/cprimesplus/article/details/105724168
什么是编译?
编译就是将高级语言程序转换成汇编语言程序/及其语言程序的过程。
编译,说白了就是翻译,对比精细的人工英译汉的步骤:
- 词法分析:分析词性:每个词属于名词?形容词?动词?介词…
- 语法分析:分析各种介词短语、名词短语、动词短语…
- 语义分析:以上两个步骤的意义就是为语义分析做铺垫,通过将语法展开成下图树的形式,可以最终根据根节点分析出整个句子的意思是什么。
编译的步骤也和人工翻译是一样的。
编译器的结构
词法分析
- 词法单元形式:二元组token:<种别码,属性值>
- 对种别码的解释
一词一码:就是说,每个不同的词分别使用一个种别码,比如:
if: <IF, >
program: <PROGRAM, >
while: <WHILE, >
多词一码:标识符是程序员编程时设置的。我们为不能枚举所有标识符,因此将所有标识符归为一个种别码。由于多个词对应一个种别码,因此在同一种别码间需要另外设置属性值来标识不同的属性:(变量名?数组名?常量?)或者(整型?浮点型?字符型?…)
语法分析
解释:
整条语句
数据类型
标识序列
语义分析
主要做两件事:收集标识符的属性信息 和 对语义的检查(检查合法性)
热门推荐
《楚门的世界》的人生启示
瞄准生物标志物,开发血液检测法,让阿尔茨海默病尽早“现形”
掌握sfc /scannow命令:扫描修复系统文件的最佳指南
详解!ODI备案最新解析与申请攻略:企业出海指南
游泳爱好者必备:最佳泳装与装备推荐指南
Android Studio如何导出源码:三种实用方法详解
走单招好还是参加高考好 哪个值得选择
征地补偿方案批复不服怎么办?详解协商方法与补偿标准
正常人是怎么感染上乙肝的
19省最低工资标准升至2100元!低收入群体迎来大范围收入上涨
吸烟有害健康是“大骗局”?尼古丁其实根本不致癌?告诉你真相
蔡新:清朝时期大臣,他的一生有着怎样的经历?
独龙玉详细介绍:来源、特性、鉴别方法及市场价值解析
Word文档显示错乱,该怎么解决
德创环保回复年报监管函:钠电池正负极材料暂无订单
硬币收藏的秘诀:旧硬币的清洗与保养
空气净化器能除烟味吗?对于除二手烟的空气净化器该如何选择?
怎样判断自己二次阳了
从0开始学习机器学习:高级优化与多元分类问题详解
简单而复杂的"生命游戏"
航班信息平台显示:韩国失事飞机原计划今天飞往北京,两天前曾在执飞北京途中备降首尔
OKR的四大核心原则:透明、对齐、聚焦、挑战性
携手共筑防溺水安全防线,让青春之花灿烂绽放!
CAN的H与L如何正确接DB9接口?
美国空军B-1B轰炸机测试新挂架,载弹量提升50%
黑眼圈太重像熊猫?有几种办法可以减轻
光纤光学——光纤的色散
如何调整英雄联盟手游的最佳画质设置(优化游戏体验)
继承纠纷起诉费用由谁承担
短视频内容优化:提升播放量与粉丝增长