编译原理第1章:引论.pptVIP

  • 2
  • 0
  • 约3.85千字
  • 约 47页
  • 2023-12-01 发布于湖南
  • 举报
* * 例: PASCAL程序段: PROCEDURE INCWAP(M,N:INTEGER); LABEL START; VAR K:INTEGER; BEGIN START: K:=M+1; M:=N+4; N:=K; END. * * * * * * 四、出错处理 出错处理程序:发现源程序中的错误,把有关错误信息报告给用户 语法错误 语义错误 1.2 编译过程 * * 五、遍(Pass) 所谓“遍”,对源程序或源程序的中间结果从头到尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序。 每遍由从外存上获得前一遍的工作结果开始,完成工作后,把结果存在外存上。每遍工作完成后所占用的存贮空间大部分被释放。 例:IBM Pascal: Pass1, Pass2 Link? 生成可重定位代码。 所以运行时要连接成绝对指令代码。 1.2 编译过程 * * 编译前端:与源语言有关,如词法分析,语法分析,语义分析与中间代码产生,与机器无关的优化 编译后端 :与目标机有关,与目标机有关的优化,目标代码产生 源语言 中间语言 目标语言 前端 后端 1.2 编译过程 六、编译前端与后端 第一章 引论 * * 编译原理 * * 《编译原理》课程简介 地位 计算机专业的一门核心课程 编译程序是计算机的重要系统软件,是高级程序设计语言的支撑基础 课程主要介绍设计和构造编译程序的基本原理和方法 * * 本门课程的要求 了解计算机高级语言源程序被计算机接受、扫描、词法分析、语法分析、语义解释执行的原理与过程; 掌握编译的原理和基本算法、各种概念和语言描述。 先导课程:程序设计语言、数据结构、离散数学、操作系统 * * 用途与作用 这是本专业应具备的基本知识,就像其他原理一样,是基础。 三大系统软件: OS、DBMS、Compiling System 开发大型系统软件、工具软件的需要。 看资料、写论文的需要 * * 《编译原理》前导课程 前导课程及涉及内容 组成原理——计算机组成及结构 微机原理——汇编语言与机器语言 离散数学——推理知识及其完备性 数据结构——树、表等的表示与实现 操作系统——提供虚拟机和系统调用 高级程序设计语言——语言定义和编程 * * 教学目的 掌握编译的基本理论、常用的编译技术,了解编译过程及编译系统的构造 编译程序一般由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、目标代码生成程序、代码优化程序、表格管理和出错处理程序等成分构成。通过课程的学习应掌握各个成分的功能和设计原则,以及在编译阶段的逻辑关系。理解他们怎样作为一个整体完成编译任务。 能运用所学技术解决实际问题,能独立编写一个小型编译系统 * * 意义: 学习编译程序构造原理,技术 更好地理解高级语言 编译的原理和方法有助于构造一些实用的工具 * * 课程特点: 理解性 技术性 考核: 作业及上机实习:30% 笔试:70% 第一章 引 论 1.1 基本概念 1.2 编译过程 1.3 编译程序与程序设计环境 1.4 高级语言程序简介 * * 一、发展 机器语言→汇编语言→高级语言→工具语言 第1代1GL 2GL 3GL 4GL 机器识别:0|1 代码 相去甚远 1.1 基本概念 * * 源语言程序 目标语言程序 翻译 程序 翻译 1.1 基本概念 二、翻译程序 把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的程序。如:中英互译系统、DBMS语言(DDL,DCL) * * 高级语言程序 机器语言程序 结果 编译 程序 翻译 运行 三、编译程序(compiler) 把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序。 编译程序分类 诊断编译程序优化编译程序 交叉编译程序可变目标编译程序 1.1 基本概念 * * 四、解释程序 把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。 源程序 结果 解释 程序 解释执行 1.1 基本概念 * * 编译程序 vs. 解释程序 编译 解释 * * 五、执行高级语言程序的步骤 把高级语言程序编译成低级语言目标程序 执行目标程序 1.1 基本概念 * * 把英文翻译为中文 识别出句子中的一个个单词; 分析句子的语法结构; 根据句子的含义进行初步翻译; 对译文进行修饰; 写出最后的译文。 1.2 编译过程 * * 一、程序的编译过程(见PPT 30页) 词法分析 语法分析 中间代码产生 优化 目标代码生成 1.2 编译过程 作用、实现者 (并非每个编译过程均有以上全过程) * * 1. 词法分

文档评论(0)

1亿VIP精品文档

相关文档