编译过程概述

编译过程划分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。

1、词法分析

此阶段的任务是从左到右一个字符一个字符地读入源程序,对构成源程序的字符进行扫描和分解,从而识别出一个个单词(逻辑上紧密相连的一组有集体含义的字符)。

2、语法分析

此阶段的任务是在词法分析的基础上将单词序列分解成各类语法短语(也称语法单位)可表示成语法树。

注:词法分析和语法分析本质上都是对源程序的结构进行分析。

3、语义分析

语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。

4、中间代码生成

“中间代码”是一种结构简单,含义明确的记号系统,这种记号系统可以设计为多种多样的形式,重要的设计原则为两点一是容易生成;二是容易将它翻译成目标代码。很多编译程序采用了一种近似“三地址指令”的“四元式”中间代码。这种四元式的形式为:(运算符,运算对象1,运算对象2,结果)

5、代码优化

将中间代码进行变换或进行改造,目的:使生成的目标代码更为高效,即省时间和空间

6、目标代码生成

任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值