编译器概述-结构和主要组件

本文介绍了编译器的主要组件和过程,包括扫描(token划分)、解析(句法分析)、语义分析(检查程序意义)和优化(如公共子表达式消除)。编译器不仅要确保代码语法正确,还需考虑其逻辑意义,并在转换为汇编语言时进行性能优化。语义分析在消除无意义的逻辑,优化则可能涉及寄存器分配和指令调度,以提高代码执行效率。
摘要由CSDN通过智能技术生成

scanning:就是把输入分成一个个Token 可以理解成对各个单词的分析
parsing: 也叫句法分析 对于整个句子进行分析
semantic analysis:检查生成的句子是否有意义,有时候一句话语法正确但是没有意义 例如苹果吃了一个汽车

一个程序只有拥有了表达式 条件判断 循环等关键特质才能有意义 进而转换成汇编语言

例如像变量a这种叫做symbolic information(符号信息) 在最终转化而成的汇编语言中 是不存在符号信息的 所有的变量其实是内存地址

在最终的Abstract syntax tree形成后 其实是没有保留symbolic information的
而保留symbolic information唯一作用就是debug

scanner:

 paring:

semantic:

student a;

car b;

int x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值