编译原理-1-绪论

目录

1 什么是编译

2 编译系统的结构

3 词法分析概述

4 语法分析概述

5 语义分析概述

6 中间代码生成

7 编译器的结构


1 什么是编译

  • 预处理器:把存储在不同文件中的源程序聚合在一起;把被称为的缩写语 句转换为原始语句。
  • 链接器 :将多个可重定位的机器 代码文件(包括库文件) 连接到一起 ; 解决外部内存地址问题

2 编译系统的结构

3 词法分析概述

词法分析的主要任务: 从左向右逐行扫描源程序的字符,识别出各个单词,确定 单词的类型 将识别出的单词转换成统一的 机内表示 —— 词法单元 (token) 形式
token < 种别码,属性值 >
 

4 语法分析概述

语法分析器 (parser) 从词法分析器输出的 token 序列中 识别出各类短语 ,并 构造语法分析树 (parse tree)
   语法分析树描述了句子的语法结构

5 语义分析概述

语义分析的主要任务:
收集标识符的属性信息
  •   种属 (Kind)
          简单变量、复合变量(数组、记录、 )、过程、
  • 类型 (Type)
           整型、实型、字符型、布尔型、指针型、… 
  • 存储位置、长度
  • 作用域
  • 参数和返回值信息
        参数个数、参数类型、参数传递方式、返回值类型、

6 中间代码生成

常用的中间表示形式
6.1三地址码 (Three-address Code)
   三地址码由 类似于汇编语言 的指令序列组成,
   每个指令 最多有三个操作数 (operand)
   语法结构树 / 语法树 (Syntax Trees)
三地址指令的表示
   四元式 (Quadruples)    (op, y , z , x )
   三元式 (Triples)
   间接三元式 (Indirect triples)

7 编译器的结构

   目标代码生成以源程序的 中间表示形式 作为输入,并把它映 射到 目标语言
   目标代码生成的一个重要任务是为程序中使用的变量 合理分配寄存器
   代码优化: 为改进代码所进行的 等价 程序变换 ,使其 运行得更 一些、 占用空间更少 些,或者二者兼顾
 
附录:
1.编译程序是一种翻译程序
2.编译过程中,语法分析器的任务就是  分析单词串是如何构成语句和声明的
3.语法分析时所依据的是 语法规则
中间代码生成及
编译器后端概述

 

中间代码生成及
编译器后端概述
中间代码生成及
编译器后端概述

 

词法分析概述词法分析概述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值