- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
COMP130022.01 三 6-7谈子敬,邯郸校区逸夫楼509-4mailto:zjtan@zjtan@教材:程序设计语言原理 编著:麦中凡、吕卫锋ISBN:978-7-5124-0295-9 程序设计语言原理参考书目 《程序设计语言——实践之路》(Michael L. Scott, Programming Language Pragmatics, Morgan Kaufmann, 1999)《程序设计语言原理(第8版)》(Concept of Programming Languages,Robert W. Seresta)主要讨论程序设计语言的各种主要机制及其相关问题, 主要关注点不是程序设计,而是程序设计语言。包括: 语言的设计和实现 重要的语言特征 这些语言特征的语法、语义和实现问题 与之相关的性质和情况 对语言的深刻理解与正确良好的使用有密切关系/?pc-demo语言的开发和标准化语言开发的初始阶段:一个人或一个设计组,根据对实际程序设计所需的一批基本要素的考虑,提出有关语言的基本构想,定义该语言的语法形式和语义实现一个语言处理系统,使这个语言能实际用于程序设计通过一些人的使用和反馈,修改完善语言的设计少数比较成功的语言可能进入下面阶段:将语言的处理系统提供给更大范围的用户,并得到更多反馈除语言设计者(拥有者)外的其他人参与该语言实现的研究和开发,并引起软件产业界的注意,形成语言实现的产品和用户社团受到标准化组织的注意,成立相应标准化小组(公司语言有版权问题)经过认真的标准化工作,产生语言的标准化文本语言的开发和标准化语言标准化的主要工作:严格检查语言中的各种结构,严格定义它们的形式和意义根据客观情况的需要,考虑加入新特征并给出严格定义处理语言中各方面的一致性问题考虑并确定语言中过时的旧特征,明确说明这些特征将逐步被淘汰标准化通常是一个很困难的过程,其中一个困难是遗产问题:与标准化前的版本或者前一个标准化版本的向后兼容问题大的改变,可能使许多已有程序变得不再合法,招致老用户的反对不改变,语言就可能由于逐渐过时而被淘汰Fortran的几次标准化(尤其是Fortran 90),Ada 95的标准化,都特别明显地反应了这些问题。C++ 也做了两次标准化(1998,2010)语言的实现:抽象机器一部计算机就是连接起来的一组硬件器件其作用是实现机器语言程序描述的计算过程使用者可以不关心其内部实现,只关心其机器语言(指令形式和意义)即使具体的硬件变了,只要它们提供的机器语言不变,使用方式没变,以前的程序都仍然可以用因此:机器语言可以看作计算机硬件的“抽象”。一种机器语言对应一类计算机,或说对应于一种“抽象计算机”。如 X86 机器语言一种高级语言也可以看作是一种抽象“计算机”的机器语言例:C 语言,可以看作能直接执行 C 程序的高级“计算机”的“机器语言”? 该“计算机”提供了 C 语言的各种基本的和高级的数据结构? 能执行 C 语言的各种基本计算,基本操作和控制结构常常没有这种计算机,因此需要考虑在已有的计算机上实现它语言的实现语言的实现牵涉到两种抽象机器(两种语言):需要实现的程序语言定义了一台抽象机某种现存的准备用于运行程序的计算机也定义了一台抽象机实现一种语言,就是在一台抽象机上做出另一台抽象机,用一台已有的抽象机去模拟另一需要实现的抽象机的行为(扮演另一不同的抽象机)通用图灵机的存在性以及图灵论题说明:只要一台抽象机的功能足够强(其功能等价于通用图灵机,具有图灵完全性),就可以用它实现其他任何抽象机的行为现代计算机都具有图灵完全性,因此可以用于实现任何程序设计语言在抽象机 A 上实现抽象机 B,就是希望基于 A 执行用 B 的语言写的程序如何在抽象机 A 上实现抽象机 B?存在哪些可能的技术路线?实现:方式常见的说法是(高级)语言的实现有两种方式,编译和解释。编译:把源程序编译为机器语言目标程序后执行解释:在目标机器上实现一个源语言的解释器,由这个解释器直接解释执行源语言程序(它实际上实现了另一部抽象机)源程序源程序编译器解释器目标程序计算机编译器是一部专计算机用机器,只有一种功能:完成一解释方式编译方式种语言到另一语言的程序翻译其实事情还不是这么简单!实现:方式语言实现方式多种多样,纯粹的编译或纯粹的解释只是两个极端C、Fortran 语言的常见实现方式可以认为是比较纯粹的编译方式早期的 BASIC,DOS 的 bat 文件,现在有些脚本语言实现,采用的基本上是纯粹的解释方式纯解释纯编译存在许多实现实现中间选择||直接翻译到解释机器语言,源程序由硬件解释翻译结果解释层次翻译深度实现:Lisp人们常说 Lisp 是解释的。其实不准确!源程序Lisp 的基本实现方式:先把源程序翻译成一种内部形
原创力文档


文档评论(0)