当前位置:文档之家› 编译原理 第一章

编译原理 第一章


程序设计语言与编译
5.高级语言涉及的三类人
使用者

实现者
设计者

电子科技大学计算机科学与工程学院
程序设计语言与编译
6.本课程的目标
介绍程序设计语言设计和实现的最基本的理 论和技术,提高鉴赏和评估语言的能力。 在了解语言的重要概念、功能和限制的基 础上,以便具有选择、设计和实现程序设计 语言的能力。
程序设计语言与编译 • 翻译汇编语言的程序称为汇编程序(器)
汇编语言
SOURCE PROGRAM
翻译程序
TRANSLATER
机器码
OBJECT PROGRAM
汇编程序
电子科技大学计算机科学与工程学院
程序设计语言与编译 • 翻译高级语言的程序称为编译程序(器)
高级语言
SOURCE PROGRAM
翻译程序
电子科技大学计算机科学与工程学院
程序设计语言与编译 7.副作用:对绑定于一个非局部变量的对象 进行修改时,将产生副作用。
8.程序单元可以递归激活,从而一个单元可 以有很多个实例,但代码段相同。不同的仅 仅是活动记录。
电子科技大学计算机科学与工程学院
程序设计语言与编译
第四节 程序设计语言发 展简介
主要特征: •主要用于科学计算
•引入了分程序结构和递归过程
•采用BNF形式描述语法
电子科技大学计算机科学与工程学院
程序设计语言与编译 COBOL语言 CO = COmmon的头二个字母 BO = Business-Oriented 的第一个字母 L = Language的第一个字母
主要特征: •广泛应用于各种事务处理领域
时间轴
存储单元n
变量X
电子科技大学计算机科学与工程学院
程序设计语言与编译
变量的值
定义:即变量对应存储区单元的内容
关于变量的值的主要问题: 匿名变量的访问通过指针实现 变量与它的值的绑定是动态的
变量的初始化,几种处理方法:
不初始化则出错 随机 符号常量的值能否修改? 缺省值0
电子科技大学计算机科学与工程学院
电子科技大学计算机科学与工程学院
程序设计语言与编译
3.绑定(Binding)概念
实体属性 实体属性
变量,子程序,语句 等均为实体
实体
实体属性
实体具有的特性
ห้องสมุดไป่ตู้
实体属性
绑定:一个实体(或对象)与其某种属性建立起某种联系的 过程,称为绑定。 绑定时间:把对象(实体)与它的某个属性联系起来的时刻, 叫绑定时间。
电子科技大学计算机科学与工程学院
程序设计语言与编译
内容回顾
1.翻译、编译、汇编 2.冯.诺依曼体系结构
1.数据或指令以二进制形式存储; 2.“存储程序”的工作方式; 3.程序顺序执行 4.存储器的内容可以被修改
3.变量、复值语句
电子科技大学计算机科学与工程学院
程序设计语言与编译
变量的作用域
X
代码
电子科技大学计算机科学与工程学院
程序设计语言与编译
第一章 绪论 第一节 引言
1. 程序设计语言的产生
• 人机通信、人机交流
2. 程序设计语言的发展
机器语言 低级语言 汇编语言 高级语言 机器语言:二进制、机器相关 汇编语言:助记符、机器相关 高级语言:接近自然语言、机器无关
电子科技大学计算机科学与工程学院
TRANSLATER
机器码
OBJECT PROGRAM
编译程序
电子科技大学计算机科学与工程学院
程序设计语言与编译
机器语言实例

汇编语言实例
– – – – – –
MOV MUL ADD SUB

– – – –
… 0001 10 10 10001000 0010 10 00 01100100 0100 01 10 10000100 1000 01 01 00000010 …
第二代语言
汇编语言, 第三代语言 机器语言的 符号化
第四代语言
电子科技大学计算机科学与工程学院
程序设计语言与编译
2.冯.诺依曼体系结构
Memory Data Register Small, temporary storage MAR MDR Memory Address Register
存贮器
输 入
可移植性 •成功应于文本处理
电子科技大学计算机科学与工程学院
程序设计语言与编译
3.概念的集成(64年)
多任务 异常处理 动态数据结构 递归过程 分程序
概念的集 成..
电子科技大学计算机科学与工程学院
程序设计语言与编译 PL/1语言
主要特征: •所有语言概念之大全 •分程序概念和递归过程 •数据描述机能 •动态数据结构 •异常处理 •多任务机能 •可用于科学数值计算,数据处理和开发系统软件 •没有(难以)得到广泛的应用
电子科技大学计算机科学与工程学院
程序设计语言与编译
关于绑定(Binding)的一些概念
描述符:用以描述实体属性的符号、语句或表格等。 亦即实体到属性的映象。 静态绑定:凡是在编译时能确定的属性,称为静态属性;
若绑定在编译时完成,运行时不改变,称为静态绑定。 动态绑定:凡是在运行时才能确定的属性称为动态的。
电子科技大学计算机科学与工程学院
程序设计语言与编译
教材和参考书 1. 王晓斌等,程序设计语方与编译,电子 工业出版社(第二版本) 2. 陈火旺等,程序设计语言编译原理,国防 工业出版社 作业: 根据进度,布置作业后一周至两周 最后成绩=期终(70%)+ 半期考试(10%) + 作业(10%) + 实验成绩(10%)
电子科技大学计算机科学与工程学院
程序设计语言与编译
3.高级语言的特点
直观、自然、易于理解
易读、易写、易于交流、出版和存档
一般都是独立于机器的,易于移植
电子科技大学计算机科学与工程学院
程序设计语言与编译
4. 三种程序、三种语言
源程序
编译程序 目标程序
源语言
编译语言
目标语言
电子科技大学计算机科学与工程学院
随着计算机技术的发展,计算机应用也日益广泛 ,已经渗透到社会的各个领域,对程序设计语言 也提出了新的要求(诸如可维护性,可靠性,可移 植性等),从而促进了语言的发展。
电子科技大学计算机科学与工程学院
程序设计语言与编译
1.早期的高级语言(50年代)
效率
效率
效率
电子科技大学计算机科学与工程学院
程序设计语言与编译 FORTRAN语言
电子科技大学计算机科学与工程学院
程序设计语言与编译
第二节 强制式语言 1.语言分类 按照语言设计的基础理论
命令式语言
函数式语言
冯.诺依曼
逻辑式语言 对象式语言
数量逻辑
数学函数
抽象数据 类型
电子科技大学计算机科学与工程学院
程序设计语言与编译
按照语言的发展进程
通常的高级语 言,也叫命令 式语言,过程 式语言 机器语言, 依赖于机器 指令系统 说明性语言 第一代语言 ,告诉机器 做什么
(二进制位串)的意义。
示和运算指令。
语言定义时,类型名通常绑定于某一个值类 和某一组操作。
语言实现时,值和操作绑定于某种机器二进 制表示。
电子科技大学计算机科学与工程学院
程序设计语言与编译
变量类型的绑定
静态绑定:通过说明语句完成 如:Pascal、Fortran、C 动态绑定:执行时隐式说明,且动态变化 如:APL A5 //整型 A //标号、转到A A1 2 51 0 // 一维数组 A[2:3]0 //二维数组
程序设计语言与编译
程序设计语言与编译
屈鸿 计算机科学与工程学院
电子科技大学计算机科学与工程学院
程序设计语言与编译
课程认识
地位

内容

专业基础课 核心课程
程序设计语言-共性 编译原理


电子科技大学计算机科学与工程学院
程序设计语言与编译
课程安排
课程设置:64学时 56课堂授课+8学时实验 先修课程: 1. 《数据结构》 2. 《形式语言》 3. 《PASCAL》或者《C语言》
处理器 Instruction Register
ALU TEMP
输 出
Arithmetic and Logic Unit
控制器
PC
Program Counter
IR
电子科技大学计算机科学与工程学院
程序设计语言与编译
冯.诺依曼体系结构的特点
数据或指令以二进制形式存储; “存储程序”的工作方式; 程序顺序执行
变量的作用域是指可以访 问该变量的程序范围。 静态作用域绑定:按照程序的语法结构定义变量的 作用域。 动态作用域绑定:按照程序的执行动态地定义变量 的作用域。
电子科技大学计算机科学与工程学院
程序设计语言与编译
变量的生存期
存储单元n 一个存储区绑定于一 个变量的时间区间,称 为变量的生存期。 变量X
若绑定在运行时完成,称为动态绑定。
电子科技大学计算机科学与工程学院
程序设计语言与编译
4.变量
X
…… 存储单元n1 存储单元n2 存储单元n3
存储单元n4
变量是对一个(或若干个 )存储单元的抽象,赋值 语句则是修改存储单元 内容的抽象。
存储单元n5 存储单元n6
存储单元n7
……
变量除名字外,具有四个属性:作用域、生存期 、值和类型。
… MOV MUL ADD SUB …
R2, id3 R2, 100 R1, R2 id1, R1
相关主题