编程语言发展简史.doc

编程语言发展简史.doc

ID:49735400

大小:252.00 KB

页数:21页

时间:2020-03-04

编程语言发展简史.doc_第1页
编程语言发展简史.doc_第2页
编程语言发展简史.doc_第3页
编程语言发展简史.doc_第4页
编程语言发展简史.doc_第5页
资源描述:

《编程语言发展简史.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、优秀的编程语歹是因考编程艺术的抽象世豺。AlanPerlis本章目录1.1原理1.2范例1.3专题1.4编稈语言发展简史1.5关于语言设计1.6编译器和虚拟机1.7小结1.8练习就像白然语言一样,编稈语言有助于人与人Z间思想的表达和交流。但是编稈语言与自然语言有两个重要区别。首先,它能使人和计算机相互沟通;其次,与人类自然语言相比,编程语言所表达的范围更为狭窄一些,它仅仅涉及计算思想的交流。这样,与自然语言相比,编稈语言就必须满足备种不同的要求。木章主要是讨论这些相关要求和编稈语言设计屮的不同选择。在学习过程中,我们会发现编程语

2、言和白然语言有许多相通Z处;也能发现在不同的计算机坏境设置中,穆序运行所表现岀來的不同Z处。我们从抽彖和动态的两个方面来看编程语言的特性。将编程语言丰富的理念设计与具体实践相结合,以便让语言设计者和程序员将这些概念应用到广泛的领域屮。学习编稈语言是相当重要的,因为现在计算机学科的学生将来是未来程序语言的设计者和使用者。要成为一个知识面宽的设计者和使用者,需要全血了解编程语言,包括它们的特征、长度和程序类型及丿应用程序屮的弱点。了解一门语言并会在一定领域运用不代表全面的了解编程语言。木书会帮助你拓宽视野。编程语言:原理与范型第2版

3、)1.1原理稈序设计人员要掌握语言的结构、含意和有助于理解程序运行的范例屮的一些基本术语。这些术语主要包括3大类,称为语言设计的3个原理:•语法。•命名和类型。•语义。以上3类屮的许多概念都是从语言学、数学及下面将要学到的知识屮借用过来的。在第2、4、5、7、9章分别对这几个原理进行介绍。随着学习的深入,会在第3、6、8、10和11章屮有深入探讨各原理。1•语法语法是语言正确描述稈序的规则。它能I叫答许多问题。比如,怎样用语言书写一段稈序?在正确的稈序中,关键字和标识符是怎样的?大多数编程语言的语法是根据语言学屮“上下文无关文法

4、”的语法定义的。上下文无关文法之外的语法有其他的含意。在本文屮的第2章对此有详细的讲解。学习语言语法血临着很多的问题。编译器怎样识别语法?怎样发现语法小的错误?上下文无关文法怎样使语法分析器容易实现?第3章将对这些关于语法的深层次问题进行冋答。2.命名和类型编程语言还包括一套详尽的命名规则一变量、函数、类和参数等。在程序运行的过程屮,命名还有一些其他的特征,如作用域、生命周期和约束条件。编程语言屮的命名语法和语义是第4章屮的内容。编程语言屮的不同类型可以表示值的取值范围,使程序能够处理数据。这些类型包括简单类型、结构体类型及更为

5、复杂的类型。简单类世有整型、十进制数、字符型和布尔型。结构体包括字符串、链表、树和哈希表。更加复杂的类型包括函数和类。备种类型在第5章屮有全面的介绍。类型系统使程序员更容易理解和实现不同类型的值的操作。一个严瑾、特有的类型系统使编译器在程序运行Z前,进行严格的类型检查,避免程序运行过程屮因为类型不匹配而导致的错误。在第6章屮,将深入学习类型系统。3.语义程序的意义是由语义来定义的。这是指在程序的运行过程屮,程序屮变量值的每一个声明是由语言屮的语义来给定的。因此,在编写稈序时,必须懂得程序屮变量在功能实现屮的主要作用等基木思想。如

6、果有独立于任何平台的语义模型,就能用不同的机器、不同的语言实现功能。我们将在第7章屮学习语义的知识。在深入学习语义时,语义的执行时间也是令人感兴趣的。注释器是如何工作的?怎样与详尽的语义连接,这些比较深入的问题将在第8章屮介绍。对函数的描述是任何语言的核心问题。对函数定义和调用的语义理解是学习编稈语言的屮心任务。函数的执行过稈也需要对静态和动态存储以及运行堆栈的理解。堆栈也冇助于理解英他问题,如变量命名的作用域和对象的生命周期。这些内容将在第9章屮讲解。函数调用和返冋的堆栈实现是深入学习编稈语言的核心问题。除此之外,内存管理的另

7、一个应对策略是堆,它是我们理解的重点内容,就像动态对象屮的数组一样。堆的管理技术叫作无用单元冋收,与动态对象联系紧密。堆栈和堆将在第10章和第11章中详细介绍。1.2范例通常,把范例作为一种能够操纵相关活动集合的思想模式。程序范例就是一种问题模式,这种问题可以解决一些特殊类型的程序和语言思想。我们可以通过4个截然不同的、最基木的稈序来看近30年来编程语言的发展。•命令式编程。•面向对象编程。•函数式编程。•逻辑式编程。一些编程语言专门设计成可以支持以上多个范例。例如,C++就是融合了命令式和面向对象的编程语言。而实验语言Lcda

8、[Budd,1995]设计成了可以支持命令式、面向对象、函数式和逻辑式4种范例的编程语言。早期设计的这些语言(如notably.PL/kAlgol68和Ada)都是比较单一的,与现在其他的编程语言相比,更具有普遍目的。除了C卄以外,其他编程语言没有引起人们持续的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。