编译原理-----第一章 编译过程叙述

第一章 编译过程叙述


1. 编译程序的五个阶段

​ 编译程序的工作过程可以划分成五个阶段:

  1. 词法分析
  2. 语法分析
  3. 语义分析和中间代码生成
  4. 代码优化
  5. 目标代码生成

(1). 词法分析

​ 从左到右一个字符一个字符的读入源程序,堆构成源程序的字符串进行扫描和分解,识别出其中的一个一个单词(也可以是符号).

(2). 语法分析

​ 在词法分析的基础上组成各种语法短语.

(3). 语义分析

​ 在语法分析确定出语法短语后,审查有无语义错误,并为代码生成收集类型信息(类型检查,变量是否声明,类型是否一致,变量会是否有值等).

(4). 中间代码生成

​ 完成语法分析和予以处理工作后,编译程序将源程序变成一种内部表示形式(如Java中的字节码文件中的字节码指令).

​ 编译原理课程中通常是四元式或者三元式:

​ 四元式的形式为(运算符, 运算对象1, 运算对象2, 结果)

(5). 代码优化

​ 为了使生成的目标代码更高效,可以对产生的中间代码进行变换或者进行改造.

(6). 目标代码生成

​ 目标代码生成阶段的任务就是把中间代码变换成特定机器上的绝对指令代码(机器语言)或可重定位的指令代码或者汇编代码.

(7). 符号表

​ 编译程序中记录的源程序的各种信息保存在符号表中,被称为符号表.

​ 符号表主要的作用:

  • 收集符号的属性信息
  • 作为语法的合法性检查的依据

编译程序的结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值