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

第一章引论 1.1编译程序和解释程序(重点) 1.2编译过程和编译程序的结构(重点) 1.2.1编译过程概述 1.2.2编译程序结构 1.2.3编译阶段的组合 1.3编译程序在其他软件中的应用(自学略) 1.4PL0语言编译系统(自学略) 自增:编译程序实现途径((自学略) 本章练习 作业 课程目录
1 第一章 引论 1.1 编译程序和解释程序(重点) 1.2 编译过程和编译程序的结构(重点) 1.2.1 编译过程概述 1.2.2 编译程序结构 1.2.3 编译阶段的组合 1.3编译程序在其他软件中的应用(自学略) 1.4PL/0语言编译系统(自学略) 自增: 编译程序实现途径(自学略) 本章练习 作业 课程目录

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

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

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

程序设计语言源程序的执行方式 例假设有源程序:read(区);write("x=",x); read☒: 翻译程序 目标程序 write("x=",x上 目标程序 X=3 read☒: 解释程序 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) (*OBT /*EXE) 汇编语言 机器语宣 源程序 汇编程序 且标程序 (*ASM) (*EXE) 悲
6 翻译程序的分类 翻译程序按所处理源语言不同分为两种 编译程序 汇编程序 高级语言 源程序 (*.C / *.PAS) 编译程序 汇编或机器语言 目标程序 (*.OBJ / *.EXE) 汇编语言 源程序 (*.ASM) 汇编程序 机器语言 目标程序 ( *.EXE)

编译程序和解释程序 Basic、Lisp、Sql解释程序、Unix命令语言 解释程序及很多脚本语言Javascript等都解 释执行的。 0 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 源程序 ▣ 编译程序 ■ 且标汇编程序 汇编程序 可再装配的机器代码 装配/连接-编译程序 可再装配标文件 章节目录 绝对机器代码 d
8 高级语言程序 的处理过程 P1 需预处理的源程序 预处理程序 源程序 编译程序 目标汇编程序 汇编程序 可再装配的机器代码 装配/连接-编译程序 可再装配目标文件 绝对机器代码 章节目录

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

第一阶段词法分析p2 例某C语言源程序 任务 main {float sum,first,count; 输入源程序(字符串) .sum=first+count*10;. 根据语言的词法规则 输出结果 对构成源程序的字符 class value 串进行扫描和分解 保留字 main 识别出一个个的单词 界符一左括号 单词内部表示形式 界符-右括号 二元式 界符一左花括号 (class,value) 保留字 float 标识符1-id1 sum 单词 单词值 算符-乘号 米 米型 整数 10 。 逃 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
- 《JAVA语言程序设计》课程教学课件(PPT讲稿)第10章 多线程.ppt
- 《JAVA语言程序设计》课程教学课件(PPT讲稿)第6章 集合.ppt
- 《C语言》课程教学资源_第01章 引论.ppt
- 《C语言》课程教学资源_第00章 课前准备.ppt
- 《数据结构与算法分析》课程教学课件(PPT讲稿)前言(JAVA).ppt
- 《数据结构与算法分析》课程教学课件(PPT讲稿)第一章 java描述.ppt
- 《数据结构与算法分析》课程教学课件(PPT讲稿)第二章 线性表.ppt
- 《数据结构与算法分析》课程教学课件(PPT讲稿)第三章 栈和队列.ppt
- 《数据结构与算法分析》课程教学课件(PPT讲稿)第四章 串.ppt
- 《数据结构与算法分析》课程教学课件(PPT讲稿)第五章 数组与广义表.ppt
- 《数据结构与算法分析》课程教学课件(PPT讲稿)第六章 树与二叉树.ppt
- 《数据结构与算法分析》课程教学课件(PPT讲稿)第七章 图.ppt
- 《数据结构与算法分析》课程教学资源(书籍文献)数据结构与算法分析.pdf
- 《计算机网络》课程课后习题答案(参考).doc
- 《计算机网络》课程教学资源(PPT课件讲稿)第一章 概述.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第二章 物理层.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第三章 链路层.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第四章 网络层.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第五章 运输层.pdf
- 《编译原理》课程教学课件(PPT讲稿)第六章 自顶向下语法分析.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch10-目标代码生成.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch10-代码优化.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch9-目标程序运行时的存储组织.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch7-8-语法制导翻译和中间代码生成2/2.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch7-8-语法制导翻译和中间代码生成1/2.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch6-LR分析.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch4-自顶而下语法分析方法.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch3-词法.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch2-文法和语言.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch1-引论 Principles of Compiler.ppt
- 《编译原理》课程教学资源(教材和参考书)编译原理-陈火旺-第3版.pdf
- 《编译原理》课程教学资源(教材和参考书)编译原理-清华张素琴-第2版.pdf
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第六章 分支限界法 Branch-and-Bound Algorithm.ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第五章 回溯算法 Backtrack Algorithm.ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第四章 贪心算法 Greedy Algorithm.ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第三章 动态规划 Dynamic Programming.ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第二章 分治与递归.ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第一章 算法概述概述(主讲:王红霞).ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第零章 算法课程简介 Design and Analysis of Computer Algorithms.ppt
