《编译原理》课程教学课件(PPT讲稿)第一章 引论 Principles of Compiler

第一章引论 1.1编译程序和解释程序(重点) 1.2编译过程和编译程序的结构(重点) 1.2.1编译过程概述 1.2.2编译程序结构 1.2.3编译阶段的组合 编译程序在其他软件中的应用 (略) 程序设计语言范型(略) 0 编译程序实现途径(略) 本章练习 课程目录 悲 作业
1 第一章 引论 1.1 编译程序和解释程序(重点) 1.2 编译过程和编译程序的结构(重点) 1.2.1 编译过程概述 1.2.2 编译程序结构 1.2.3 编译阶段的组合 编译程序在其他软件中的应用(略) 程序设计语言范型(略) 编译程序实现途径(略) 本章练习 作业 课程目录

1.1什么是编译程序p1 编译程序的必要性 机器语言:计算机只认识由0和1构成的机器语言, 每台机器自己独特的指令系统即机器语言。 汇编语言 高级语言 ???? 编译程序概念 编译程序最初的定义是把一种高级语言设计的源 程序(面向人的)翻译成另一种等价的低级程序设 计语言(面向硬件的)即机器语言或汇编语言
2 1.1 什么是编译程序 p1 编译程序的必要性 机器语言:计算机只认识由0和1构成的机器语言, 每台机器自己独特的指令系统即机器语言。 汇编语言 高级语言 ???? 编译程序概念 编译程序最初的定义是把一种高级语言设计的源 程序(面向人的)翻译成另一种等价的低级程序设 计语言(面向硬件的)即机器语言或汇编语言

程序设计语言源程序的执行方式 程序设计语言源程序的执行基本有两种方式 翻译 使用翻译程序,将源程序翻译成为低级语 言目标程序,然后执行目标程序 解释 使用解释程序,对源程序逐个语句边解释 边执行 可比喻为 译文一目标程序 翻译一笔译(产生译文,可进行优化,一次 翻译过后,多次使用) 解释一口译(不产生译文,交互方便,节省 空间,对重复部分要反复解释,效率低)
3 程序设计语言源程序的执行方式 程序设计语言源程序的执行基本有两种方式 翻译 使用翻译程序,将源程序翻译成为低级语 言目标程序,然后执行目标程序 解释 使用解释程序,对源程序逐个语句边解释 边执行 可比喻为 译文—目标程序 翻译—笔译 (产生译文,可进行优化,一次 翻译过后,多次使用) 解释—口译 (不产生译文,交互方便,节省 空间,对重复部分要反复解释,效率低)

翻译程序和解释程序图解 源程序 翻译程序 目标程序 (源语言) (目标语言) 共同点:都需 源程序 解释程序 进行词法、语 (源语言) 法和语义分析 区别:是否生 输入 输出 成目标程序
4 翻译程序和解释程序图解 源程序 (源语言) 翻译程序 目标程序 (目标语言) 源程序 (源语言) 解释程序 输入 输出 共同点:都需 进行词法、语 法和语义分析 区别:是否生 成目标程序

程序设计语言源程序的执行方式 例假设有源程序:read(x);write("x=",x); read(x); 翻译程序 目标程序 write("x=",x); 目标程序 X=3 read(x); 解释程序 X=3 write("x=",x); 3 悲
5 程序设计语言源程序的执行方式 例 假设有源程序:read(x); write("x=", x); read(x); write("x=", x); 目标程序 目标程序 3 X=3 read(x); write("x=", x); 翻译程序 解释程序 3 X=3

翻译程序的分类 翻译程序按所处理源语言不同分为两种 编译程序 汇编程序 高级语言 汇编或机器语言 源程序 编译程序 目标程序 (*.C/*.PAS) (*OBJ *EXE) 汇编语言 机器语言 源程序 汇编程序 目标程序 (*ASM) (*EXE)
6 翻译程序的分类 翻译程序按所处理源语言不同分为两种 编译程序 汇编程序 高级语言 源程序 (*.C / *.PAS) 编译程序 汇编或机器语言 目标程序 (*.OBJ / *.EXE) 汇编语言 源程序 (*.ASM) 汇编程序 机器语言 目标程序 ( *.EXE)

编译程序和解释程序 Basic、Lisp、Sql解释程序、Unix命令语言 解释程序及很多脚本语言Javascript等都解 释执行的。 C、C+、Pascal等语言是编译执行的。 Java语言的处理环境既有编译程序,也有解 释程序,见图1.5(p9)》 Java→编译程序→Bytecode→解释程序
7 编译程序和解释程序 Basic、Lisp、Sql解释程序、Unix命令语言 解释程序及很多脚本语言Javascript等都解 释执行的。 C、C++、Pascal等语言是编译执行的。 Java语言的处理环境既有编译程序,也有解 释程序,见图1.5(p9) Java → 编译程序 → Bytecode →解释程序

需预处理的源程序 高级语言程序 预处理程序 的处理过程P1 ■ 源程序 编译程序 目标汇编程序 ▣ 汇编程序 可再装配的机器代码 ▣ 装配/连接-编译程序 可再装配目标文件 章节目录 绝对机器代码
8 高级语言程序 的处理过程 P1 需预处理的源程序 预处理程序 源程序 编译程序 目标汇编程序 汇编程序 可再装配的机器代码 装配/连接-编译程序 可再装配目标文件 绝对机器代码 章节目录

1.2.1编译过程概述p2 编译过程可分为下面5个阶段 词法分析 语法分析 语义分析和中间代码生成 优化 目标代码生成 表格管理和错误处理 悲
9 1.2.1编译过程概述 p2 编译过程可分为下面5个阶段 词法分析 语法分析 语义分析和中间代码生成 优化 目标代码生成 表格管理和错误处理

第一阶段词法分析p2 例某C语言源程序 任务 main {float sum,first,count; 输入源程序(字符串 .sum=first+count*10;. 根据语言的词法规则 输出结果 对构成源程序的字符 class value 串进行扫描和分解 保留字 main 识别出一个个的单词 界符一左括号 单词内部表示形式 界符-右括号 二元式 界符一左花括号 保留字 float (class,value) 标识符1-id1 sum 单词值 算符-乘号 米 整数 10
10 第一阶段 词法分析p2 任务 输入源程序(字符串) 根据语言的词法规则 对构成源程序的字符 串进行扫描和分解 识别出一个个的单词 单词内部表示形式 二元式 (class,value) 单词 类型 单词值 例某C语言源程序 main( ) {float sum,first,count; .sum=first+count*10;. } 输出结果 class value 保留字 main 界符-左括号 ( 界符-右括号 ) 界符-左花括号 { 保留字 float 标识符1-id1 sum . 算符-乘号 * 整数 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《编译原理》课程教学课件(PPT讲稿)第五章 自底向上优先分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)第7-8章语法制导、静态语义分析和中间代码生产.ppt
- 《编译原理》课程教学课件(PPT讲稿)第9章 运行时存储组织.ppt
- 《编译原理》课程教学课件(PPT讲稿)第10章 代码优化和目标代码生成-1代码优化.ppt
- 《编译原理》课程教学课件(PPT讲稿)第10章 代码优化和目标代码生成-2目标代码生成.ppt
- 《编译原理》课程教学课件(PPT讲稿)第一章 绪论 Principles of Compiler.ppt
- 《编译原理》课程教学课件(PPT讲稿)第二章 文法与语言.ppt
- 《编译原理》课程教学课件(PPT讲稿)chap 3 词法分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)chp4 自顶向下语法分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)chp5 自底向上优先分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)chp 6 LR分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)chap7 语法制导翻译和中间代码生成.ppt
- 《编译原理》课程教学课件(PPT讲稿)chap8 运行时存储空间组织与管理.ppt
- 《编译原理》课程教学课件(PPT讲稿)chap9 优化.ppt
- 《编译原理》课程教学课件(PPT讲稿)chap10 目标代码生成.ppt
- 《C语言》课程教学资源(复习资料)二级C语言选择题题库参考(带答案版).doc
- 《C语言》课程教学资源(复习资料)计算机二级C语言上机题库100套参考(含答案).doc
- 《C语言》课程教学资源_二级C语言复习资料_二级公共基础知识参考资料课件.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C1.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C2.ppt
- 《编译原理》课程教学课件(PPT讲稿)第二章 文法与语言.ppt
- 《编译原理》课程教学课件(PPT讲稿)第三章 词法分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)运行时存储空间组织.ppt
- 《编译原理》课程教学课件(PPT讲稿)第一章引言.ppt
- 《编译原理》课程教学资源(习题答案)编译原理习题答案,第二版,清华.pdf
- 《编译原理》课程教学课件(PPT讲稿,2018)cha10_2 代码生成 讲授.ppt
- 《编译原理》课程教学课件(PPT讲稿,2018)cha10_1 代码优化 讲授.ppt
- 《编译原理》课程教学课件(PPT讲稿,2018)cha7-8 语法制导翻译和中间代码生成 修订增加继承属性简介.ppt
- 《编译原理》课程教学课件(PPT讲稿,2018)cha6 LR分析 修订教材页码.ppt
- 《编译原理》课程教学课件(PPT讲稿,2018)cha5 自底而上语法分析.ppt
- 《编译原理》课程教学课件(PPT讲稿,2018)cha4 自顶向下语法分析方法.ppt
- 《编译原理》课程教学课件(PPT讲稿,2018)cha3 词法分析 阅读.ppt
- 《编译原理》课程教学课件(PPT讲稿,2018)cha3 词法分析 修订 讲授.ppt
- 《编译原理》课程教学课件(PPT讲稿,2018)cha2_2 文法和语言_短语直接短语句柄——讲授.ppt
- 《编译原理》课程教学课件(PPT讲稿,2018)cha2_1 文法和语言——讲授 修订.ppt
- 《编译原理》课程教学课件(PPT讲稿,2018)cha1 引论 修订.ppt
- 《编译原理》课程教学课件(PPT讲稿)cha2 文法和语言(文法实例小C语言).ppt
- 《JAVA语言程序设计》课程教学课件(PPT讲稿)J11_JDBC操作Derby数据库.ppt
- 《JAVA语言程序设计》课程教学课件(PPT讲稿)J10_输入、输出流.ppt
- 《JAVA语言程序设计》课程教学课件(PPT讲稿)J09_常用实用类.ppt
