搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
不正经
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Linux下安装包或命令安装netcat(nc)_nc命令安装包
2
计算n个数的总和与平均数(C++用函数实现)_c++求n个数平均值代码
3
像素级图像融合的常用算法_图像融合算法
4
《MATLAB图像处理实例详解》:学习第一天(2022.09.07)_matlab图形处理示例
5
Python 与 PySpark数据分析实战指南:解锁数据洞见_python和pyspark数据分析
6
基于MATLAB的计算机视觉与深度学习实战_matlab的xvaier初始化
7
vue中过滤数据小数点前使用千位分隔符 小数点后不使用且保留位数_vue千位逗号分隔符与小数点
8
全速前进:2024年MAD(机器学习,人工智能和数据)前景(20000字长文)
9
简单介绍一下“前向安全”的知识(从零开始学区块链 137)
10
LoaderRunner压力测试
当前位置:
article
> 正文
第二章 编译程序基本原理 — 编译过程概述_编译过程包括哪些阶段?各阶段的主要功能是什么?
作者:不正经 | 2024-04-29 12:53:31
赞
踩
编译过程包括哪些阶段?各阶段的主要功能是什么?
编译过程概述
1. 词法分析
2. 语法分析
3. 语义分析
4. 中间代码生成(可无)
5. 代码优化(可无)
6. 目标代码生成
7. 符号表管理
8. 出错处理
1. 词法分析
阶段任务: 对源程序从前到后(从左到右)逐字符的扫描,从中识别出一个个”单词”符号。(单词:关键字、标识符、常数、运算符和分割符)。
词法错误:非法字符,关键字或标识符拼写错误。
正规式、有限自动机。
2. 语法分析
阶段任务: 确定整个输入串是否构成一个语法上的正确程序。
语法错误:语法结构出错,if 、endif不匹配;缺分号;
语言的语法规则。
3.
语义分析
阶段任务:进行类型分析和检查;分析各词法结构的含义;特指静态语义。
语义错误:死循环,0除数,其他逻辑出错。
4. 中间代码生成(可无)
根据语义分析的输出生成中间代码;
5. 代码优化(可无)
因为中间代码的生成是机械的、按固定模式进行的,所以在时间和空间上有较大的浪费。要生成高效的代码就得进行优化。
优化一般建立在对程序的控制流和数据流分析的基础之上,与具体的机器无关。可在中间代码生成或目标代码生成阶段进行。
6. 目标代码生成
把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码。此阶段与机器密切相关。
7. 符号表管理
符号表的作用是记录源程序中各个符号的必要信息。
符号表的建立可以在词法分析、语法分析、语义分析阶段
8. 出错处理
在逻辑上分为前端和后端。前端(包括从词法分析到中间代码生成),后端(中间代码优化和目标代码优化)
以中间代码为分水岭,把编译器分为与机器有关的部分和与机器无关的部分。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/不正经/article/detail/507839
推荐阅读
article
CTP
开发爬坑指北(
一
)_
报单
编号
和
报单
引用
的
区别...
众所周知,天下大坑共
一
石,
CTP
独占八斗。进行
CTP
开发时,里面需要注意
的
地方比较多。今天给大家聊
一
聊
CTP
中暗藏
的
一
些...
赞
踩
article
NeurIPS2020
论文接收量第一的大佬是怎样炼成的?_
gradient
surgery
for
...
AMiner平台由清华大学计算机系研发,拥有我国完全自主知识产权。平台包含了超过2.3亿学术论文/专利和1.36亿学者的...
赞
踩
article
TOGAF
企业
架构
...
本文仅仅是
TOGAF
学习和理解,不以考证和落地实施为目的。The Open Group 于 1995 年开发了 TOGA...
赞
踩
article
nvidia
训练
深度学习
模型
利器
apex
使用
解读_
nvidia
apex
...
apex
使用
说明_
nvidia
apex
nvidia
apex
本文参考: 英伟达(NVIDIA...
赞
踩
article
关于C++ STL中的
find
()
函数
和
count
()
函数
的
复杂度
_c++
vector
find
的...
因为容器STL采用是map和set内部是红黑树实现的。因此map和set内部的
find
函数
查找时间
复杂度
是O(logn)...
赞
踩
article
CDC 数据入湖方案:MySQL >
Flink
CDC +
Schema
Registry
+ A...
本文是《CDC 数据入湖方案:MySQL >
Flink
CDC >
Kafka
>
Hudi
》的增强版,借助 Flin...
赞
踩
article
3
年
测试
经验只会“
点
点
点
”
,
不会
自动化
即将面临公司淘汰?沉淀
100
天继续做
测试
_
测试
就
点
点
点
...
前段时间一个朋友跟我吐槽
,
说自己做软件
测试
工作已经
3
年
了
,
可这三
年
自己的能力并没有得到提升
,
反而随着互联网的发展
,
自己只...
赞
踩
article
毕业
设计
选题 --
人工
智能
大
数据
专业
毕业
设计
选题推荐_基于大
数据
分析
的
智能
文本分类技术的
设计
与实现...
人工
智能
大
数据
专业
毕业
设计
选题合集涵盖了管理系统、小程序、深度学习、机器学习、算法、
人工
智能
、大
数据
、网络安全、嵌入式、...
赞
踩
article
Java
—了解
编译
原理 (
前端
编译
)_
编译
过程
的
六个
阶段
...
目录
Java
前端
编译
1.词法分析2.语法分析3.语义分析4.生成中间代码
前端
编译
优缺点:
Java
后端
编译
Java
前端
编译
...
赞
踩
article
Spark
安装中Failed to
in
itialize
compiler
:
object
java
...
首先大概步骤根据这个博客走,https://www.cnblogs.com/xuliangx
in
g/p/7279662....
赞
踩
article
在
Nginx
中实现
网站
密码保护
的
前端方法...
在开发
网站
时,有时我们需要对
网站
的
某些页面或资源进行
密码保护
,以确保只有授权用户能够访问。
Nginx
是一个广泛使用
的
高性...
赞
踩
article
KafKa
-
分区
副本
ISR
选举机制_
kafka
isr...
一、
KafKa
-
分区
副本
ISR
选举机制
kafka
中每一个主题又进一步划分成若干个
分区
。
副本
的概念实际上是在
分区
层级下...
赞
踩
article
数据结构
-
二叉树
的
构建与
遍历
_
数据结构
中
二叉树
的
建立...
文章目录一、
二叉树
的
定义二、
二叉树
的
建立二、
二叉树
的
遍历
1.先序
遍历
2.
中
序
遍历
3.后序
遍历
4.层序
遍历
三、
二叉树
的
叶、...
赞
踩
article
方法一:
使用
git
命令
操作更改
远程
仓库
分支
名称
...
使用
git
命令
操作更改
远程
仓库
分支
名称
方法一:
使用
git
命令
操作更改
远程
仓库
分支
名称
1、修改本...
赞
踩
article
Redis的
配置文件
_
redis
配置文件
...
设置 tcp 的 backlog,backlog 其实是一个连接队列,backlog队列总和 = 未完成三次握手队列 +...
赞
踩
article
解构
2019
世界
人工智能
大会
:三大变化
,
十年趋势
,
一场地球与火星的碰撞_
2019
世界
人工智能
大会
te...
作者 | 微胖、四月来源 | 机器之能和首届
大会
相比
,
本次
大会
关注点也发生了一些重要变化
,
关注正在发生位移。比如
,
从 A...
赞
踩
article
IDEA2022
Git
回滚
及
回滚
内容恢复...
IDEA2022
Git
回滚
及
回滚
内容恢复
IDEA2022
Git
回滚
及
回滚
内容恢复 ...
赞
踩
article
YOLOv5
添加
注意力
机制_
yolov5
注意力
机制...
YOLOv5
添加
注意力
机制_
yolov5
注意力
机制
yolov5
注意力
机制 ...
赞
踩
article
Zookeeper
安装
...
zookeeper单机及集群
安装
部署_zookeeper
安装
zookeeper
安装
...
赞
踩
article
CVPR2021
|
SETR
: 使用
Transformer
从序列到序列的角度重新思考
语义
分割
_...
前言本文介绍了一篇
CVPR2021
的
语义
分割
论文,论文将
语义
分割
视为序列到序列的预测任务,基于
transformer
作为...
赞
踩
相关标签
c++
金融
算法
人工智能
大数据
机器学习
架构
学习
flink
cdc
kafka
schema
registry
avro
hudi
压力测试
测试工具
软件测试
自动化测试
单元测试
毕业设计
毕业设计选题教程
java
前端编译
spark