编译原理(一):引言


【编译原理博客列表】》》》》》》


语言翻译的两种基本形态

  • 先翻译后执行
    在这里插入图片描述
  • 边翻译边执行
    在这里插入图片描述

编译器各阶段的工作(编译程序的工作过程)

编译程序的工作过程一般划分为5个阶段:

  • 词法分析
  • 语法分析
  • 语义分析和中间代码生成(可选)
  • 代码优化(可选)
  • 目标代码生成
  • PS另外还有:符号表管理和出错处理

意思解释:

  • 词法分析
    识别单词,至少分以下几大类:关键字(保留字)、标识符、字面量、特殊符号
  • 语法分析
    得到语言结构并以的形式表示;
  • 语义分析
    考察结构正确的句子是否语义合法,修改树结构
  • 中间代码生成(可选)
    生成一种既接近目标语言,又与具体机器无关的表示,便于优化与代码生成;
    (到目前为止,编译器与解释器可以一致)
  • 中间代码优化(可选)
    局部优化、循环优化、全局优化等;优化实际上是一个等价变换,变换前后的指令序列完成同样的功能,但在占用的空间上和程序执行的时间上都更省、更有效。
  • 目标代码生成
    不同形式的目标代码-汇编、可重定位、内存形式(Load-and-Go);
  • 符号表管理
    合理组织符号,便于各阶段查找、填写等;
  • 出错处理
    错误的种类-词法错、语法错、静态语义错、动态语义错

编译器扫描的遍数

每个阶段将程序完整分析一遍的工作模式称为一遍扫描

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值