面试问题之C++语言:简述编译过程

转载于:https://blog.csdn.net/ypshowm/article/details/89374706

编译过程主要分为四步:

1、词法分析(扫描)

  运行类似于有限状态机的算法将源代码的字符分割成一系列的记号。词法分析产生的记号一般分为几种:关键字、标识符、字面量(数字,字符串等)、特殊标记(加号,等号等)。另外,扫描器也完成其他一些工作,比如将标识符存放到符号表中,将数字、字符串常量存放到文字表中。

2、语法分析

  将由扫描器产生的记号进行语法分析,从而产生语法树。语法树:以表达式为结点的树。另外,在语法分析时,很多运算符的优先级和含义也被确定下来。

3、语义分析

  就是看看这个语句是否有意义。编译器能分析的语义是静态语义,即在编译期间可以确定的语义。

4、中间语言的生成

  源代码优化器会在源代码级别进行优化,进而产生中间代码。中间代码一般跟目标机器和运行环境是无关的,比如不包含数据的尺寸,变量的地址和寄存器的名字等。

转载于:https://www.cnblogs.com/yichengming/p/11547206.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值