编译原理(第1章)素材教程文件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

a=1234h;
b=5678h;
c=a+b;
return 0;
翻译程序
机器只能理解和执行机器语言.高级语言需转换成机器 语言才能执行.如何转换?
▪ 翻译 ▪ 解释
翻译程序:是指能够把某种语言的程序(源语言程序) 转换成另一种语言的程序(目标语言程序),而后者 与前者在逻辑上是等价的。
编译程序:源语言程序为高级语言程序,目标语言程序 是低级语言程序的翻译程序。
诊断编译程序:侧重于帮助程序开发和调试 优化编译程序:着重于提高目标代码的效率 ....
如何执行一个源程序
边解释边执行-----解释程序边解释边执行 源程序本身,不产生目标程序。
输入数据
源程序
解释程序
计算结果
编译原理这门课程主要介绍设计 和构造编译程序的基本原理和常用的 技术和方法。
本章重点介绍编译程序的基本概念。
词法分析
语法分析 语义分析 修饰工作 翻译成文
第一种情况:
初始数据

源程序
译 程
高级语言 序
程序
机器语言 目标程序
运行系统
结果
编译阶段
运行阶段
编译原理
17
第二种情况:
初始数据

源程序
译 程
高级语言 序
程序
编译阶段
汇编 汇 语言 编 目标 程 程序 序
机器 语言 目标 程序
结果
运行系统
汇编阶段
运行阶段
编译原理
18
1.2 编译程序的基本结构
例:将英文句子 “I wish you success ” 翻译成中文句子的大致过程是:
汇编程序:源语言程序为汇编语言程序,目标语言程序 为机器语言程序的翻译程序。
如何执行一个源程序
先编译后执行-----编译程序编译出目标程序,系 统执行。
输入数据
源程序P
编译程序
宿主机
目标程序P’
运行系统
目标机
计算结果
运行编译程序的计算机
运行产生的目标代码的计算机
交叉编译程序:宿主机和目标机的指令系统不同
一定要预习,每人都请准备一个笔记本! 认真听课,积极思考,积极发言,认真理解
重视习题:按时完成课堂作业及课堂的测试 在理解的基础上记忆,把编译的每个阶段放到整
个编译程序背景中学习 理论结合实践,重视实验
要敢于犯错误
学习的一种方法,经常还是唯一的方法,就在于首 先犯错误。我们在学习,多数时间在通过犯错误 学习。
时间。
编译原理
15
源程序 编译程序 高级语言程序
(*.C / *.PAS)
目标程序
汇编语言或者 机器语言程序
(*.OBJ / *.EXE)
编译程序是一种翻译程序,它将 高级语言所写的源程序翻译成等价的 机器语言或汇编语言的目标程序。
编译原理
16
采用编译方式在计算机上执行用高级 语言编写的程序,需分阶段进行。
✓ 修养“问题→形式化描述→计算机化” 的问题求解过程
编译原理
4
实验要求
实验形式
▪分析、设计、编写、调试、测试程序
▪撰写实验报告
▪答辩
实验内容
▪程序设计复习
2学时
▪编码完成扫描程序(词法分析)2学时
▪语法分析器的设计与实现
4学时
▪使用Lex自动生成一个编译器 6学时
2020/7/3
5
学习中应注意的问题
按机器指令的工作方式来思考c问od题e ends
end start
程序设计语言
高级语言(面向人类的语言)的结构符合人的思维方式:如直接使用表达式进 行计算.
▪具有高抽象度:如 类 等机制
▪强调逻辑过程,事情的前因后果,不仅是做什么,而
且是怎么做?
int main
{
int a,b,c;
学会利用各种资源提高自己
▪ 学校的、家庭的、社会的…… ▪ 上学期间利用资源的唯一目的就是提高自己
不要沉迷于网络聊天(微信 微博……)与游戏
7 2020/7/3
各章节内容安排
第一章 引论 第二章 高级语言及其语法描述
第三章 词法分析 第四章 语法分析【自顶向下(递归
下降语法分析、LL(1))、自底向上 (LR(1))】 第五章 语义分析【语法制导的翻译】
第六章 中间代码及目标代码生成
编译原理
8
程序设计语言
机器语言:
assume cs:code, ds:data
(面 低向 级机 语器 言语 )言
▪能够被计算机的硬件系统直d接ata执se行dgwm的e1n2指t34令h,程567序8h。 ▪由二进制(0、1序列)组成 data ends
▪难读、难写、易出错。
什么是编译程序
编译的过程
编译程序的结构
编译原理
14
1.1 什么是编译程序
高级语言程序 翻译程序 机器语言程序
翻译程序是指这样一个程序,它把
一种语言(称作源语言)所写的程序(源
程序)翻译成等价的另一种语言(称作
目标语言)的程序(目标程序)。世界上
第一个编译程序FORTRAN是在20世纪50
年代中期研制成功的。花费了18年的
编译原理(第1章)素材
为什么要学习编译原理
编译程序构造是计算机学科中一个非常成功 的分支,也是最早获得成功的分支;
编译原理蕴涵着计算机学科中解决问题的思 路、抽象问题和解决问题的方法;
编译原理课程的学习有利于加深对程序语言 的理解,可以帮助你更加快速的掌握新的语 言工具;
课程中包含了很多软件技术,程序设计语言 编译程序构造的基本原理和实现方法是软 件的核心技术之一,这对于以后从事软件设 计是很有帮助的.
为什么要学习编译原理
编译原理
3
与课程有关的问题
先修课程:
编程语言、离散数学、汇编语言、数据结构 、形式语言与自 动机
应用
编译器的设计 一般软件的设计
a) 文本编辑器、信息检索系统、模式识别器 b) 排版、绘图等
本课程的基本要求
✓ 通过对本课程的学习,对形式语言有初步了解,并能对编 译程序的整个结构有较清楚地了解,熟悉和掌握几种主要 编译方法。
急功近利是学习的一大敌人!
编译原理
6
寄语
要主动学习
▪ 不要苛求课程、老师和环境,他/她/它们只是资源 ▪ 目标确定后要善于利用各种资源
注重对自己能力的培养
学会做人,乐于助人,多为别人着想,可以获取友谊
▪ 朋友是资源,可以终生受益
学会安排自己的时间
▪ 时间就像海绵里的水,只要肯挤,总会有的。贵在恒。
code segment start: mov ax, data
汇编语言:用记忆符表示指令m的ov操ds作, ax码。 mov ax, ds:[0]
mov bx, ds:[2]
mov cx, 0
add cx, ax
add cx, bx
mov cx, ds:[4]
mov ax, 4c00h
int 21h
相关文档
最新文档