第1章 编译程序概论

2024-05-06 03:08
文章标签 概论 编译程序

本文主要是介绍第1章 编译程序概论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基本概念:

  • 机器语言:能够被计算机的硬件系统直接执行的指令程序。 
  • 汇编语言:将硬件指令用一些助记符表示。如ADD表示加法操作,SUB表示减法操作等等 
  • 高级语言:使用便于理解的自然语言。

语言处理程序

  • 解释程序(器):接受某种语言源程序,然后直接解释执行源程序。
  • 编译程序(器):接受某种语言的源语      言程序后,将它改造成另一种逻辑上等价的目标语言程序。 








编译的各个阶段

  • 词法分析
  • 词法分析的功能是从左到右读入源程序的每个字符,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也叫单词符号或符号)。
  • 依据:语言的构词规则。
  • 单词:逻辑上紧密相连的一组字符,这些字符具有集体含义。
  • 如:标识符、保留字(关键字或基本字)、算符、界符等。

  • 语法分析
  • 语法分析的功给是将单词序列分解成各类语法短语(也叫语法单位,句子),确定整个输入串是否构成一个语法上正确的程序。
  • 依据:语言的语法规则。
  • 通过语法分析确定整个输入串是否构成一个语法上正确的程序。
  • 语句的表示:
    标识符:=表达式  是语句。
    while (表达式) do 语句
    if (表达式) then 语句 else 语句
    都是语句。

  • 语义分析
  • 语义分析的功能是审查源程序有无语义错误,为代码生成阶段收集类型信息。
  • 语义分析主要能识别的语义错误有变量没有声明就使用,变量重复声明,运算对象类型是否匹配等等。

  • 中间代码生成
  • 将源程序生成一种内部表示形式,这种内部表示形式叫中间代码。
  • 中间代码:一种结构简单、含义明确的记号系统。
原则:
  • 容易生成;
  • 容易将它翻译成目标代码。
如四元式:
(运算符,运算对象1,运算对象2,结果)


  • 代码优化
  • 目的:使目标代码运行时间较短,占用空间较小。


  • 目标代码生成
  • 任务:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
  • 特点:与硬件系统结构和指令含义有关,涉及到硬件系统功能部件的运用、机器指令的选择、各种数据类型变量的存储空间分配以及寄存器和后缓寄存器的调度等。


  • 符号表管理
  • 符号表用来记录源程序中出现的标识符,并收集每个标识符的各种属性信息。
  • 符号表是由若干记录组成的数据结构,每个标识符在表中有一条记录,每条记录有多个域,每个域记载标识符的一个属性。

  • 有关名词:
  • 前端(front end):主要依赖于源语言而与目标机器无关的编译阶段。如:词法分析、语法分析、语义分析、中间代码生成、部分优化工作、与前端有关的出错处理工作和符号表管理工作。
  • 后端(back end):依赖于目标机而一般不依赖于源语言,只与中间代码有关的编译阶段。如:目标代码生成,以及相关出错处理和符号表操作。
  • 遍(趟):对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。每一遍扫视可完成上述一个阶段或多个阶段的工作。


这篇关于第1章 编译程序概论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/963312

相关文章

数据库系统概论(超详解!!!) 第十四节 数据库恢复技术

1.事务的基本概念 1.事务 事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。 事务和程序是两个概念, 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。 一个程序通常包含多个事务 。 事务是恢复和并发控制的基本单位 定义事务: 显式定义方式 事务正常结束  。 提交事务的所有操作(读+更

如何混淆 net core 8 架构 C# 编译程序

如何混淆 net core 8 架构 C# 编译程序 一、使用混淆工具 .NET Reactor V6.9二、net core 8 架构 C# 编译程序(发布的单文件)1、通过发布的单文件程序,可以直接在 .NET Reactor 拖入或打开 ,勾选自己需要的保护功能。2、勾选自己需要的保护功能,点击 Protect,即可在《程序名称_Secure》目录下生成混淆后的程序3、使用最新反编译工

习惯概论

习惯为"知识"、"技巧"、"意愿"相互交织的结果.        知识是理论范畴,指点"做什么"及"为何做";        技巧告诉我们"如何做";        意愿促使"想要做"        高效能与低效能人士习惯对比:

数据库系统概论——数据库恢复技术

文章目录 数据库恢复技术事务的基本概念什么是事务如何定义事务:事务的特性 数据库恢复概述故障的种类恢复的实现技术恢复策略事务故障的恢复系统故障的恢复介质故障的恢复 数据库恢复技术 事务的基本概念 什么是事务 事务使用户定义的一个数据库操作序列,这些操作要么全做,要么一个都不做,是一个不可分割的工作单位。事务和程序是两个概念 在关系数据库中,一个事务可以是一条SQL语句,

21、24年--项目管理概论——项目经理的角色

1、项目经理的定义                项目经理的角色不同于职能经理或运营经理。一般而言,职能经理专注于对某个职能流域或业务部门的而管理监督。运营经理负责保证业务运营的高效性。项目经理则由执行组织委派,负责领导团队实现项目目标。 2、项目经理的影响力范围 2.1 概述         项目经理 在其影响力范围内可担任多种角色,这些角色反映了项目经理的能力,体现了项目经理的价值和作

数据库系统概论(个人笔记)(第四部分)

数据库系统概论(个人笔记) 文章目录 数据库系统概论(个人笔记)4、中间的SQL4.1 连接表达式4.2 视图4.3 事务4.4 完整性约束4.5 SQL数据类型和模式4.6 SQL中的索引定义4.7 授权 4、中间的SQL 4.1 连接表达式 Join Expressions Joined Relations 连接操作 Join operation

linux GCC编译程序的过程

使用gcc编译程序时,编译过程可以细分为四个阶段: 预处理 预处理过程读入程序源代码,检查包含预处理指令的语句和宏定义,并对源代码进行相应的转换。预处理过程会删除程序中的注释和多余的空白字符。编译 编译阶段中,gcc首先检查代码的规范性,是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。汇编 汇编阶段是把在编译阶段产生的汇编文件转成目标代码。链接 将

嵌入式期末复习--day1(第一章 嵌入式系统概论)

目录 一、使用书籍​编辑 二、声明      三、知识点总结 (一)嵌入式系统的组成 1、嵌入式微处理器 两种体系结构:冯诺依曼体系结构和哈佛结构 (1)冯诺依曼体系结构 (2)哈佛结构 两种指令系统:精简指令集系统RISC和复杂指令集系统CISC (1)精简指令集系统RISC (2)复杂指令集系统CISC 2、外围硬件设备 3、嵌入式操作系统EOS (1)强实时嵌

基础-01-计算机网络概论

一. 计算机网络的发展与分类 1.计算机网络的形成与发展 计算机网络:计算机技术与通信技术的结合 ICT=IT+CT 2.计算机网络标准阶段 3.计算机网络分类1:通信子网和资源子网 通信子网:通信节点(集线器、交换机、路由器等)和通信链路(电话线、同轴电缆、无线电线路、卫星线路、微波中继线路和光纤缆线)。用户资源子网:PC、服务器等。 4.计算机网络分类2:网络拓扑结构

数据库原理(概论)——(1)

数据库概述 一、数据库的四个基本概念 1.数据 描述事物的符号记录 2.数据库 数据库是长期存储在计算机内的、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储、具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 3.数据库管理系统 是位于用户和操作系统之间的一层数据库管理软件,和操作系统一样是计算机的基础软件。  主