程序设计语言与编译.ppt

上传人:小飞机 文档编号:6482026 上传时间:2023-11-04 格式:PPT 页数:45 大小:273.32KB
返回 下载 相关 举报
程序设计语言与编译.ppt_第1页
第1页 / 共45页
程序设计语言与编译.ppt_第2页
第2页 / 共45页
程序设计语言与编译.ppt_第3页
第3页 / 共45页
程序设计语言与编译.ppt_第4页
第4页 / 共45页
程序设计语言与编译.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《程序设计语言与编译.ppt》由会员分享,可在线阅读,更多相关《程序设计语言与编译.ppt(45页珍藏版)》请在三一办公上搜索。

1、程序设计语言与编译,计算机学院 陈文宇cwy,一.教材 程序设计语言与编译-语言的设计与实现(2版)二.参考书1.龚天富,李广星,高级程序设计语言概论2.陈火旺等,程序设计语言编译原理,三.关于教学 1.课程设置:56学时=48+8(实验)2.先修课程:,或者 3.答疑:根据进度安排,临时通知,第一章 绪论,第一节 引言1.程序设计语言的产生 人机通信、人机交流2.程序设计语言的发展 机器语言汇编语言高级语言(翻译,解释,汇编,编译等概念),翻译:等价的程序变换。,3.高级语言的特点 直观、自然、易于理解 易读,易写,易于交流、出版和存档 一般都是独立于机器的,易于移植,4.与“编译”有关的三

2、种语言、三种程序 源语言、工具语言、目标语言 源程序、编译程序、目标程序5.高级语言涉及的三类人 设计者、实现者、使用者,6.本书的目标 介绍程序设计语言的设计和实现的最基本的理论和技术;提高鉴赏和评估语言的能力 在了解语言的重要概念、功能和限制的基础上,以便具有选择、设计和实现程序设计语言的能力,第二节 强制式语言,一.程序设计语言的分类按设计的理论基础分类:强制式(命令式或面向语句)函数式逻辑式面向对象,按语言的发展进程分类:第一代语言(机器语言)第二代语言(汇编语言)第三代语言(高级语言)第四代语言(说明性语言、超高级语言)新一代语言(函数式、逻辑式语言),二.冯.诺依曼体系结构 1.基

3、础 一个存储器,一个控制器,一个处理器 2.特点数据或指令以二进制形式存储;“存储程序”的工作方式;程序顺序执行;存储器的内容可以被修改。,数据存储器(D),3.在命令式语言上的表现 变量 存储单元及它的名称由变量的概念来代替。可以代表一个或一组单元,可以修改。赋值 计算结果必须存储。重复 因语句顺序执行,指令存储在有限的存储器中,完成复杂计算时必须重复执行某些指令序列。,三.绑定(Binding)概念 1.属性:实体具有的特性。如变量,子程序,语句等均为实体。2.绑定:一个对象(或事物)与其某种属性建立起某种联系的过程。(也称为约束)3.描述符:用以描述实体的属性的符号、语句或表格等。亦即实

4、体到属性的映象。4.邦定时间:把对象(实体)与它的某个属性联系起来的时刻。,5.“静态”和“动态”特性:凡是在编译时能确定的特性,称为静态的;凡是在运行时才能确定的属性称为动态的。举例:动态数组和静态数组。,四.变量 变量是对一个(或若干个)存储单元的抽象,赋值则是对修改存储单元内容的抽象。变量除名字外,具有四个属性:作用域、生存期、值和类型。,1.变量的作用域 变量的作用域是指可以访问该变量的程序范围。静态作用域绑定:按照程序的语法结构定义变量的作用域。动态作用域绑定:按照程序的执行动态地定义变量的作用域。,2.变量的生存期一个存储区绑定于一个变量的时间区间,称为变量的生存期。数据对象:存储

5、区和它保存的值分配:变量获得存储区的活动长度:变量所分配的存储单元的个数 有静态分配和动态分配两种方式。,3.变量的值存储区单元的内容匿名变量的访问通过指针实现变量与它的值的绑定是动态的符号常数的值不能修改变量的初始化 不初始化则出错 随机 缺省值0,4.变量的类型类型的定义:变量的类型可以看成与变量相关联的值的类,以及对这些值进行的操作的说明。类型可用来解释变量绑定的存储区的内容(二进制位串)的意义;语言定义时,类型名通常绑定于某一个值类和某一组操作;语言实现时,值和操作绑定于某种机器二进制表示。,静态绑定:通过说明语句完成 如:Pascal、Fortran动态绑定:执行时隐式说明,且动态变

6、化 如:APL A5 整型 A 标号、转到A A 1 2 51 0 一维数组(A 0)A2:3 0 二维数组A B+C,五.虚拟机 虚拟机是由软件实现的机器。M1是实际的机器,执行二进制机器语言 若汇编语言是虚拟机M2的机器语言,则 M2=M1+汇编程序 若高级语言是虚拟机M3的机器语言,则 M3=M2+编译程序,COBOL,FORTRAN,PL/1,BASIC,FORTRAN2000,ALGOL60,ALGOL68,ALGOLW,Pascal,Modula-2 Concurrent Ada Pascal,BCPL,C,C+,六.主要的强制式语言及其关系,Java,1.程序单元:程序执行过程中

7、的独立调用单元。如子程序,分程序,过程等。2.单元表示编译时,一个单元的源程序。运行时,单元表示由一个代码段和一个活动记录组成,称为单元实例。3.活动记录:执行单元所需要的信息,以及该单元的局部变量所绑定的数据对象的存储区。,第三节 程序单元,数据存储器(D),4.非局部变量:一个程序单元可以引用未被本单元说明而被其它单元说明的变量。5.引用环境:局部变量+非局部变量。6.别名:同一单元的引用环境中有两个或多个变量绑定于同一数据对象,称这些变量具有别名。,7.副作用的产生:对绑定于一个非局部变量的对象进行修改。8.程序单元可以递归激活,从而一个单元可以有很多个实例,但代码段相同。不同的仅仅是活

8、动记录。9.静态分配和动态分配 Fortran Pascal 或C,随着计算机技术的发展,计算机应用也日益广泛,已经渗透到社会的各个领域,对程序设计语言也提出了新的要求(诸如可维护性,可靠性,可移植性等),从而促进了语言的发展。,第四节 程序设计语言发展简介,一.早期的高级语言(50年代)追求效率1.FORTRAN FORmula TRANslation.主要用于科学计算.子程序独立编译.COMMON语句实现了模块之间的通信,2.ALGOL 60 ALGOrithmic Language 60.主要用于科学计算.引入了分程序结构和递归过程.采用BNF形式描述语法,3.COBOL COmmon

9、Business Oriented Language.广泛应用于各种事务处理领域.引入了文件和数据描述.类自然语言程序描述,二.早期的突破 60年代初,不再盲目地追求效率,出现了基于良好刻画数学原则的语言。1.LISP.具有很强的符号处理能力.统一的数据结构.数据和程序统一的表示方法.其基础是函数和函数作用,2.APL.支持函数式程序设计风格.广泛应用于涉及大量矩阵运算的科学计算中.具有丰富的操作符,3.SNOBOL 4.主要用于字符串处理.给出了一种与机器无关的宏功能,增加了程序的可移植性,三.概念的集成(64年)PL/1.希望将所有语言概念集成大全.分程序概念和递归过程.数据描述机能.动态

10、数据结构.异常处理.多任务机能.可用于科学数值计算,数据处理和开发 系统软件.难以得到广泛的应用,四.再一次突破(60年代后期)引入了许多有趣的概念1.ALGOL 68.以零型文法描述.引入正交性和通用性原则,2.SIMULA67.应用于模拟领域.增加了一个特殊结构协同程序.引入了类的概念3.PASCAL.具有明显的简洁性.体现结构程序设计思想.具有用户自定义类型,4.BASIC.简单易学.交互式工作环境.解释执行,五.大量的探索 70年代,支持系统软件开发 1.语言研究 涉及抽象数据类型,异常处理和并行处理机制 2.MODULA-2.支持模块结构,模块可以独立编译.面向实时系统和并行系统综合

11、功能,3.C CPLBCPLBC.C的最大特点是具有高级语言和低级 语言的优点.应用于各种领域,六.Ada和第四代语言 70年代以后,注重可移植性 1.Ada.面向专门领域的特殊要求.是在引入了一个不大的,容易理解的 概念集合的基础上开发的.是直接体现许多现代软件设计方法学 的语言.提高程序的可读性,可靠性,可维护性,2.第四代语言超高级语言 面向问题.表达力更强,使用更方便,更接近于 问题的描述.着重关心的是”做什么”,七.网络时代的语言(Java语言)面向对象实现:编译与解释相结合分布性安全性并发性,八.新一代程序设计语言 以抛弃冯.诺依曼概念为基础,包括函数式,对象式,逻辑式,第一章习题,所有习题均为思考题!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号