欢迎来到天天文库
浏览记录
ID:45589198
大小:112.44 KB
页数:21页
时间:2019-11-15
《优秀的编程语言是思考编程艺术的抽象世界》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、精品快线之计算机优秀的编程语言是思考编程艺术的抽象世界。AlanPerlis本章目录1.1原理1.2范例1.3专题1.4编程语言发展简史1.5关于语言设计1.6编译器和虚拟机1.7小结1.8练习就像自然语言一样,编程语言有助于人与人之间思想的表达和交流。但是编程语言与自然语言有两个重要区别。首先,它能使人和计算机相互沟通;其次,与人类H然语言相比,编程语言所表达的范围更为狭窄一些,它仅仅涉及计算思想的交流。这样,与自然语言相比,编程语言就必须满足各种不同的要求。木章主要是讨论这些相关要求和编程语言设计中的不同选择。在学习过程中,我们会发现编程语言和口然语言有许多相通Z处;
2、也能发现在不同的计算机环境设置中,程序运行所表现出来的不同之处。我们从抽象和动态的两个方而来看编程语言的特性。将编程语言丰富的理念设计与具体实践相结合,以便让语言设计者和程序员将这些概念应用到广泛的领域中。学习编程语言是相当重要的,因为现在计算机学科的学牛将來是未來程序语言的设计者和使川者。要成为一个知识面宽的设计者和使用者,需要全面了解编程语言,包括它们的特征、长度和程序类型及应用程序中的弱点。了解一门语言并会在编程语言:原理与范型(第2版)一定领域运用不代表全面的了解编程语言。本书会帮助你拓宽视野。1.1原理程序设计人员要掌握语言的结构、含意和有助于理解程序运行的范例
3、屮的一些基木术语。这些术语主要包括3人类,称为语言设计的3个原理:•语法。•命名和类型。•语义。以上3类小的许多概念都是从语言学、数学及下面将要学到的知识中借用过來的。在第2、4、5、7、9章分别对这儿个原理进行介绍。随着学习的深入,会在第3、6、8、10和11章中冇深入探讨各原理。1•语法语法是语言正确描述程序的规则。它能回答许多问题。比如,怎样用语言书写一段程序?在正确的程序中,关键字和标识符是怎样的?大多数编程语言的语法是根据语言学中“上下文无关文法”的语法定义的。上下文无关文法之外的语法有其他的含意。在本文中的笫2章对此有详细的讲解。学习语言语法面临着很多的问题。
4、编译器怎样识别语法?怎样发现语法中的错误?上下文无关文法怎样使语法分析器容易实现?第3章将对这些关于语法的深层次问题进行回答。2.命名和类型编程语言还包括一套详尽的命名规则——变量、函数、类和参数等。在程序运行的过程中,命名还有一些其他的特征,如作用域、牛命周期和约束条件。编程语言中的命名语法和语义是笫4章中的内容。编程语言屮的不同类型可以表示值的取值范I韦I,使程序能够处理数据。这些类型包括简单类型、结构体类型及更为复朵的类型。简单类型有整型、十进制数、字符型和布尔型。结构体包括字符屮、链表、树和哈希表。更加复杂的类型包括函数和类。各种类型在第5章屮有全面的介绍。类型系
5、统使程序员更容易理解和实现不同类型的值的操作。一个严瑾、特冇的类型系统使编译器在程序运行之前,进行严格的类型检查,避免程序运行过程中因为类型不匹配而导致的错课。在第6章中,将深入学习类型系统。3.语义程序的意义是由语义来定义的。这是指在程序的运行过程中,程序中变量值的第1章概论3每一个声明是由语言中的语义來给定的。因此,在编写程序时,必须懂得程序中变量在功能实现中的主要作用等基本思想。如果冇独立于任何平台的语义模型,就能用不同的机器、不同的语言实现功能。我们将在第7章中学习语义的知识。在深入学习语义时,语义的执行时间也是令人感兴趣的。注释器是如何工作的?怎样与详尽的语义连
6、接,这些比较深入的问题将在第8章中介绍。对函数的描述是任何语言的核心问题。对■函数定义和调用的语义理解是学习编程语言的中心任务。函数的执行过程也需要对静态和动态存储以及运行堆栈的理解。堆栈也冇助于理解其他问题,如变量命名的作川域和对彖的生命周期。这些内容将在第9章中讲解。函数调用和返回的堆栈实现是深入学习编程语言的核心问题。除此之外,内存管理的另一个应对策略是堆,它是我们理解的重点内容,就像动态对象中的数组一样。堆的管理技术叫作无用单元回收,与动态对象联系紧密。堆栈和堆将在第10章和第11章中详细介绍。1.2范例通常,把范例作为一种能够操纵和关活动集合的思想模式。程序范例
7、就是一种问题模式,这种问题可以解决-•些特殊类型的程序和语言思想。我们可以通过4个截然不同的、最基本的程序來看近30年来编程语言的发展。•命令式编程。•面向对象编程。•函数式编程。•逻辑式编程。一些编程语言专门设计成可以支持以上多个范例。例如,C++就是融合了命令式和面向对象的编程语言。而实验语言Leda[Budd,1995]设计成了可以支持命令式、面向对象、函数式和逻辑式4种范例的编程语言。早期设计的这些语言(如notably、PL/I、Algol68和Ada)都是比较单一的,与现在其他的编程语言相比,更具有普遍冃的。除了C
此文档下载收益归作者所有