第4章程序设计语言原理1-3.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章程序设计语言原理1-3

1. 引言 ? 为什么要学习“程序设计语言原理”课程? ? 程序设计语言的发展 ? 计算模型和语言分类 ? 语言:规范和实现 ? 程序设计语言的实现 ? 程序设计语言的设计目标及其演化 为什么学习程序设计语言原理? 程序设计语言是大多数计算机工作者是用的“计算机”交流工具。要很好完成与计算机有关的工作,必须对语言有较深入的理解。 深入理解“程序设计语言”,有助于: ? 正确使用程序设计语言,更好完成程序设计和软件开发工作 ? 理解程序设计语言中比较困难的特征 ? 理解如何在语言的不同表达方式中做出正确选择 ? 正确使用各种工具,如 Debugger 等 ? 在缺乏某些特征的语言里正确有效地模拟这些特征 ? 正确地讨论与程序设计语言有关的问题 ? 学习和理解新遇到的语言,新的语言概念 ? 在实际需要时选择语言 为什么学习? (问题实例) 我们学过是VC程序设计,6.0版本的C++语言,谁知道下面C语句给n赋什么值? m = 1; n = m+++m++; 为什么我的程序调试时完全正确,Release生成的程序却出错? 可以发现许多问题,究其原因,是因为没有很好理解程序设计语言。 计算机专业工作者应该读“程序设计语言”的书籍,或上这方面课程,提高认识,才可能把计算机领域的工作做得更好。 例如:《程序设计语言原理》《计算机原理》 程序设计语言的发展 硬件计算机是机器语言程序的解释器和执行器,有了计算机就有了程序,就必须有程序的描述方式:程序设计语言 计算机硬件只能处理二进制形式的程序(机器语言程序)。如: 是MISP机器语言:欧几里得算法求GCD(最大公约数 )的程序,人很难阅读理解,很难使用。开发成本高昂,耗时巨大,容易出错,难以检查,依赖于具体计算机,… 而后发展出符号形式的汇编语言。例:MIPS汇编语言:GCD程序 每条指令容易理解,但仍为简单的平坦结构。没有高级结构,不支持程序的高级组织,大程序难以理解和开发,依赖于具体计算机,… 发展 1954年IBM的John Backus领导的一个小组开发出第一个高级程序设计语言Fortran,标志着程序设计的新时代的开始。英文“FORmula TRANslator”的缩写,译为“公式翻译器”,它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。FORTRAN语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。 高级语言的主要特点: ? 抽象描述形式(类似自然语言和数学公式的形式) ? 人的可读性 ? 可实现 ? 机器无关性 此后是程序设计语言的大发展。 程序设计语言:广义指所有能用于为计算机写程序的语言 今天人们用程序设计语言专指各种高级语言 Fortran语言程序示例: character(len=80)?::?form real?::?data(100) integer?::?i,num data?=?(/?(i,i=1,100)?/)/10.0 read(*,*)?num write(form,*)?(,num,f10.3) write(*,form)?data stop end 为什么有这么多语言 为什么不能设计一种适应一切计算机应用的唯一语言? ? 计算机的应用领域丰富多彩,不同领域、不同具体应用对于合适的语言有不同要求。一种语言无法满足所有应用的需要。 ? 语言设计的许多方面有很多选择,各种不同设计选择各有优缺点,结果通常是“鱼和熊掌不可兼得”。 ? 新的应用领域和应用需求不断出现,也常带来新的语言。如网络、实时应用、图形用户界面等等。 ? 计算机硬件的发展,例如速度、容量、并行机、RISC等。 ? 程序技术的发展,如结构化程序设计,面向对象得程序设计。 ? 程序理论的研究和应用。标准化的需要。 ? 向后兼容性,历史遗产和人的习惯,等等。 计算模型和语言范型 形成许多程序设计语言的一个原因:对计算过程可以有许多不同的看法,由此产生了不同的计算模型(范型,Paradigms) ,基于这些计算范型产生了不同的语言类(语言范型)。主要范型有: 过程式范型(Procedural,或称命令式,Imperative): 把计算看成一系列操作的执行,基本的计算元素是一组基本操作。计算过程在一个环境里进行,操作的效果就是改变环境的状态: 抽象的手段是定义新操作(定义过程)。 写程序就是描述操作执行的顺序过程,描述状态和状态的变化 常规语言,如C,Pascal,Fortran等等,都是命令式语言。 语言范型 函数式范型(Functional): 把计算看成对数据的函数变换,一个计算就是一系列的函数变换。基本计算元素是一组基本函数,程序描述的是函数的各种组合(复合、函数选择、递归等

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档