面试问题之C++语言:简述编译过程
2024-09-03 19:35:18
转载于:https://blog.csdn.net/ypshowm/article/details/89374706
编译过程主要分为四步:
1、词法分析(扫描)
运行类似于有限状态机的算法将源代码的字符分割成一系列的记号。词法分析产生的记号一般分为几种:关键字、标识符、字面量(数字,字符串等)、特殊标记(加号,等号等)。另外,扫描器也完成其他一些工作,比如将标识符存放到符号表中,将数字、字符串常量存放到文字表中。
2、语法分析
将由扫描器产生的记号进行语法分析,从而产生语法树。语法树:以表达式为结点的树。另外,在语法分析时,很多运算符的优先级和含义也被确定下来。
3、语义分析
就是看看这个语句是否有意义。编译器能分析的语义是静态语义,即在编译期间可以确定的语义。
4、中间语言的生成
源代码优化器会在源代码级别进行优化,进而产生中间代码。中间代码一般跟目标机器和运行环境是无关的,比如不包含数据的尺寸,变量的地址和寄存器的名字等。
最新文章
- 基于nutz框架理解Ioc容器
- Linux连接Internet
- SSH服务器与Android通信(2)--Android客户端接收数据
- Leetcode 137. Single Number I/II/III
- 【Delphi】圆角窗体
- 使用静态变量的方法求n!
- dreamvc框架(一)ioc容器的集成
- a标签增加onclick事件提示未定义function
- python alembic which comes from SQLalchemy
- [妙味JS基础]JS热身运动
- shared_ptr注意点
- javasrcipt的作用域和闭包(二)
- CF891C Envy 最小生成树/虚树
- Linux下调整ext3分区大小【转】
- Flex组件参考 代码参考汇总
- RxSwift学习笔记4:disposeBag/scheduler/AnyObserver/Binder
- Eclipse调试cas server 3.5.2.1
- 我的硬盘安装ArchLinux+xorg+gnome+美化
- Debian7安装后的配置(英文环境chromium浏览器中汉字变成方块的问题)
- UVA 1600 Patrol Robert 巡逻机器人 (启发搜索BFS)