1 / 26
文档名称:

汹涌澎湃汹涌澎湃汹涌澎湃汹涌澎湃.doc

格式:doc   大小:4,119KB   页数:26页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汹涌澎湃汹涌澎湃汹涌澎湃汹涌澎湃.doc

上传人:suijiazhuang2 2018/12/2 文件大小:4.02 MB

下载得到文件列表

汹涌澎湃汹涌澎湃汹涌澎湃汹涌澎湃.doc

相关文档

文档介绍

文档介绍:第章
1
预备知识
学****程序设计语言原理的原因
程序设计领域
语言评价标准
影响语言设计的因素
程序设计语言的分类
语言设计中的权衡
实现方法
编程环境

在开始介绍程序设计语言原理之前,必须了解一些预备知识。首先本章将解释为什么计算机科学专业的学生与专业的软件开发人员,应该学****语言设计与评价的一般性原理,这对于那些认为计算机科学家只需要一两种程序设计语言的应用知识就足够的人来说,很有意义;第二,简要介绍主要的程序设计领域;第三,由于本书将评价语言构成和特性,所以会列出一些标准作为评价的基础;第四,介绍影响语言设计的两大要素:计算机体系结构和程序设计方法学;第五,介绍各类程序设计语言;第六,给出几种语言设计必须考虑的主要的取舍方法。
由于本书也涉及程序设计语言的实现,因此本章概述了最常用的实现方法。最后简要介绍一些编程环境的实例,讨论它们对软件开发的影响。
学****程序设计语言原理的原因
学生自然想知道,学****程序设计语言原理有什么好处,毕竟计算机科学中有许多其他课题需要认真研****我们认为,学****程序设计语言原理具有以下这些潜在的优点:
增强表达思想的能力。一般认为,人们思考问题的深度受到他们交流其思想时所用语言的表达能力的影响。那些对自然语言理解肤浅的人,思维的复杂度也有限,特别是在抽象的深度上。换言之,人们难以将口头或书面无法表达的东西概念化。
程序员在开发软件的过程中同样受到这一限制。他们开发软件所用的语言限制了可用的控制结构、数据结构和抽象层次,从而限制了他们能够构造的算法形式。了解更多的程序设计语言特性,能够在软件开发时减少这些限制。程序员学会新的语言结构后,能够提升软件开发时思维过程的层次。
可能有人认为,了解其他语言的功能对一个被要求使用不具有这一功能的语言进行开发的程序员没有帮助。然而这种看法并不成立,因为通常来说,语言的结构能够被不直接支持这些结构的其他语言模拟出来。例如,一个了解Perl语言(Wall等,2000)中关联数组的结构和用法的C语言程序员,可能会用C语言设计出模拟关联数组的结构。换句话说,对程序设计语言概念的学****能够使程序员对重要的语言特性与结构有充分的理解,鼓励程序员去使用它们,甚至在所用的语言不直接支持这种特性或结构的情况下也同样如此。
扩充选择合适语言的背景知识。许多专业的程序员没有受过多少正规的计算机科学教育,而是通过自学或单位内部培训获得了程序设计技能。这类培训通常只教授与公司当前项目直接相关的一两种语言。其他许多程序员在很久以前受过正规的培训,他们那时所学的语言已经不再使用,现在程序设计语言中许多特性当时知道的人并不多。结果,许多程序员在为新项目选择程序设计语言时,仍然使用他们最熟悉的语言,即使该语言并不适合当前的项目。如果这些程序员熟悉更多的语言和语言结构,就能更好地选择具有适合处理手头问题的特性的语言。
一种语言的某些特性经常可以用另一种语言来模拟,但是使用语言中专门设计加入的特性总是优于模拟这一特性,用不支持该特性的语言来模拟通常不够简练,更加笨重,也不安全。
增强学****新语言的能力。计算机程序设计仍然是一门相对年轻的学科,设计方法学、软件开发工具和程序设计语言仍然在不断地演进中。因此软件开发是一种激动人心的职业,但也意味着从业人员必须不断学****学****新程序设计语言的过程可能艰难又漫长,对于只****惯于一两种语言、从来没有研究过程序设计语言基本原理的人来说尤其如此。一旦完全理解了语言的基础原理,就能够非常容易地理解这些原理如何融入所学语言的设计中。例如,理解面向对象程序设计原理的程序员比没有接触过这些原理的程序员更容易学****Java语言(Arnold等,2006)。
同样的现象也出现在自然语言方面。对母语语法理解得越好,学****另一种自然语言就越容易。此外,学****另一种语言也有助于更好地了解母语。
TIOBE程序设计社区发布了一个程序设计语言使用广泛程度的列表(be_index/)。例如,根据2011年8月的列表,Java、C和C++是使用最多的语言,还有几十种其他语言也得到广泛使用1. 注意,这个列表只考虑了程序设计语言的流行性,其准确性并未得到普遍的认可。
。列表数据也表明,程序设计语言使用情况的分布一直在变化。正在使用的语言数量,以及统计数据的变化情况,都暗示每个软件开发人员必须准备着学****不同的语言。
最后一点也很重要,在职的程序员只有了解程序设计语言的术语和基本概念,才能阅读和理解对程序设计语言的说明和评价,以及关于语言和编译器的其他文献。这些都是选择和学****语言的信息来源。
更深刻地理解实现的重要性。在学****程序设计语言的原理时,学****影响这些