编译原理复习笔记--第一章 关于编译程序的基本概念

第一章 关于编译程序的基本概念

计算机中语言的层次体系(也可以说是语言之间的翻译模式):
在这里插入图片描述

1.1 编译器与解释器

1.1.1 编译器

  编译程序是一种翻译程序,它特指把某种高级程序设计语言翻译成具体计算机上的低级程序设计语言

  源程序的翻译和翻译后程序的运行是两个独立的不同阶段。

  • 编译阶段:用户输入源程序,经过编译器处理,生成目标程序。
  • 运行阶段:目标程序的运行阶段,根据目标程序的要求进行适当的数据输出,最终得到运行结果。
    在这里插入图片描述在这里插入图片描述

1.1.2 解释器

  解释程序也是一种翻译程序,将某高级语翻译成具体计算机上的低级程序设计语言

  解释器将翻译和运行结合起来,翻译一段源程序,紧接着就执行。

解释程序的执行过程如下图:
在这里插入图片描述在这里插入图片描述

1.1.3 二者的主要区别

  运行目标程序时的控制权在解释器而不在目标程序。

  (1)编译器有目标程序,解释器没有。

  (2)编译器运行效率高,解释器便于人机对话。

解释器的优点:

  (1)具有较好的动态特性。

  (2)具有较好的可以执行。

缺点:

  (1)时间上:在运行过程中,解释器要时间来检查源程序。

  (2)空间上:执行解释时,不但要有用户程序的运行空间,而且解释器和相应的运行支撑系统也要占据内存空间。

1.2 编译器的逻辑结构

  编译器工作的阶段可以分成五个阶段或者六个阶段。
在这里插入图片描述在这里插入图片描述

1.3 编译器的实现机制

  :编译程序对源程序或等价程序从头至尾扫描的次数

  根据语言和环境的不同,编译程序实现时是把图1.2中的各阶段划分成若干遍。

  两遍的编译程序:

  第一遍:词法分析、语法分析和语义分析;

  第二遍:目标代码生成和目标代码优化。

  每遍中的各阶段的工作是穿插进行的。

  编译过程:

  1. 词法分析:识别单词并分类。关键字、标识符、字面量、特殊符号
  2. 语法分析:组词成句及语法错误检查.
  3. 语义分析:分析各种语法成分的语义特征。
  4. 优化:提高目标程序质量的工作。
  5. 目标代码生成:产生计算机可识别的语言。

1.4 编译器的分析/综合模式

  对于编译器的各个阶段,逻辑上可以把他们划成两个部分,即分析部分和综合部份。分析部分也被称为编译器的前端,综合部份也被称为编译器的后端。如图所示是理想的分析/综合模式。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值