第1章 绪论new (编译原理 陈火旺).ppt

第1章 绪论new (编译原理 陈火旺)

课程的性质 计算机专业的专业基础课 是软件技术基础 是计算机专业的学生必修的一门主干课 学习编译原理的目的 通过本课程主要学习编译程序构造的基本原理和技术 加深对程序研发过程的理解 加深对程序执行过程的认识 进一步编好程序 为将来从事系统软件和软件工具研究与开发打下基础 提高计算机专业素养(计算机专业的“诗经”) 学习任务 掌握编译的理论基础和形式化系统 了解编译的全过程及其具体的实现方法 成绩考核方法 成绩考核方法 平时成绩占20% 实践成绩占30% 期末考试成绩占50% 平时成绩为 课堂点名+作业 学习方法及要求 认真听课,认真理解书中的基本概念、基本原理与基本算法 弄懂书中的例题与习题 在看书时或理解例题时,一定要划出相应的细节变化过程,通过画图来加深理解 在理解的基础上记忆 理论结合实践 上课、上机纪律! 编译原理课程学习方法之我见: (1)编译原理与离散数学的关系 (2)“游戏”与“游戏规则” 第1章 引论 内容简介 程序的翻译 编译程序的工作过程 编译程序的结构 编译程序的组织方式 编译程序的构造 第1章 引论 教学要求 掌握:编译的概念,编译的过程 理解:编译的各个阶段 了解:编译的结构和组合 1.0 程序设计语言 程序设计语言 各种程序设计语言都有自己的语法和语义体系,其编译程序根据这种语言的语法和语义将其翻译成机器能够接受的机器语言。 程序设计语言是按一定规则排列的符号集合,而编译程序就是把这些符号集合变成机器指令的转换器,编译程序又称为编译器。 软件分类 软件 计算机系统中的程序及其文档 系统软件 居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用,如编译系统和操作系统。 应用软件 把软件语言编写的各种程序处理成可在计算机上执行的程序。 编译程序的重要性 使得计算机用户不必考虑与机器有关的繁琐细节 使程序员和程序设计人员独立于机器 1.1 什么是编译程序(compiler) 一、翻译程序的定义 二、什么是编译程序(compiler) 编译程序 是一个语言翻译程序,是将用高级语言书写的源程序翻译成等价的低级语言的目标程序。 1.编译方式是一种分阶段进行的方式。 两个阶段的转换: 编译阶段 运行阶段 三个阶段的转换: 编译阶段 汇编阶段 运行阶段 2.编译方式的特点 四、 解释方式 源程序解释执行的历程 在解释方式下,并不生成目标代码,而是直接执行源程序本身。这是编译方式与解释方式的根本区别。 1.2 编译过程概述 ?先看自然语言的翻译 1. 识别出句子中的一个个单字 2. 分析句子的语法结构 3. 初步翻译句子的含意 4. 译文修饰 5. 写出最后译文 1.2 编译过程概述 1.2 编译过程概述 1.2 编译过程概述 举例说明: 有一个C语言程序,对它进行编译 void jisuan() { int y,c,b; float x,a,b; x=a+b-50; y=c+(d+x)+b; } 一、词法分析 一、 词法分析 转换: 对基本字、运算符、界限符的转换; 标识符的转换; 常数的转换; 转换完成后的格式:(单词种别 单词值) 二、语法分析 语法规则:语言的规则,又称为文法;规定单词如何构 成短语、语句、过程和程序。 三、 语义分析与中间代码产生 中间代码的形式: 四元式、三元式、逆波兰式 四、 代码优化 五、 目标代码生成 说明: 上述编译过程的阶段划分是一种典型的处理模式,事实上并非所有的编译程序都包括这样几个阶段。有些编译程序并不要中间代码,即不存在中间代码生成阶段;有些编译程序不进行优化,优化阶段即可省去;有些最简单的编译程序只有词法分析,语法分析;语义分析和目标代码生成。 1.3 编译程序的结构 一、表格与表格管理 与编译前三个阶段有关的表格有: *** 符号表:登记源程序中出现的每个名字(常量名、变量名、数组名等)以及名字的各种属性; 常数表:登记源程序中出现的各种类型的常数值; 标号表:登记源程序中出现的标号的定义和引用情况; 分程序入口表:登记过程的层次、分程序符号表的入 口等; 中间代码表:记录四元式序列的表。 二、出错处理 三、 遍(趟,趟程) 前端主要由与源语言有关但与目标机器无关的那

文档评论(0)

1亿VIP精品文档

相关文档