媒介就是消息.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
媒介就是消息

PAGE 10 第1部分 函数与基本原理 PAGE 9 STYLEREF 标题 1 \* MERGEFORMAT 第2章 可计算性 第1章 导 第1章 导 言 媒介就是消息。 ——Marshall McLuhan 1.1 程序设计语言 在计算机编程中,程序设计语言是作为表达的媒介。一个理想的程序设计语言能让程序员轻松地编写出简洁、清晰的程序。由于程序在其生存期中必须易于理解、修改和维护,一个好的程序设计语言还要让其他人易于阅读程序并理解它们是怎样工作的。软件的设计和构造是一项复杂的工作。许多软件系统都由相互作用的多个部分组成。这些部分,或者说是软件的构件,它们之间的交互可能非常复杂。为了控制复杂性,必须仔细地定义这些构件之间的接口和消息传送。一个适于大规模编程的、好的程序设计语言将会帮助程序员高效地管理软件组件之间的交互。当我们评价程序设计语言的时候,必须考虑到设计、实现、测试和维护软件的工作,看看每种语言对软件生命周期中的各个部分是如何提供支持的。 在程序设计语言的设计过程中有很多时候需要折衷利弊,这是项困难的工作。有些语言的特色使得我们能够很快地编写出程序,但是在设计测试工具和方法的时候却要困难得多。而有些语言的构造方式使得编译器能够容易地对程序进行优化,但又会使得编程过程烦琐。由于不同的计算环境和应用需要不同的程序特性,于是不同的程序语言设计者选择了不同的折衷办法。实际上所有成功的程序语言最初都是为某一特殊用途而设计的。这并不是说每种语言都只适于一种目的。然而,把注意力集中在某一应用上能够帮助语言设计者作出一致的、有目的的决定。单一应用还有利于解决语言设计的最难对付的问题:遗漏好的想法。 即使你不使用本书中的许多程序设计语言,你仍能运用这些语言所体现的概念框架。在20世纪70年代中期,当我还是学生的时候,所有“严谨”的程序员(至少在我所在的大学)都使用Fortran语言。Fortran语言不允许递归,而大家普遍认为递归的效率太低,对“实际的编程”不实用。然而,我选修的一门课程的讲师认为递归是一个非常重要的思想,并向我们解释在Fortran语言中可以怎样利用递归技术管理数组数据。我很高兴我选修了那门课程,从而认识到递归并不是一个不实际的思想。在20世纪80年代,许多人认为面向对象编程效率不高、太笨拙,不适合实际的编程。但是,在20世纪90年代,学生会为自己在80年代学习了面向对象编程这一“未来派”语言而感到高兴,因为面向对象编程已经被广泛接受和使用。 尽管这不是一本讲述程序设计语言历史的书,但整本书都对历史有一定关注。讨论历史上的各种语言的目的之一是,通过事实来理解程序设计语言中的各种折衷方案选择。例如,当机器速度很慢并且内存资源很宝贵时的程序跟现在的程序是不同的。所以20世纪60年代的程序语言设计者所关心的问题与现在的程序语言设计者所关心的问题不同。通过想像过去年代中的实际情况,我们就能更深地理解为什么语言设计者要做出那些决定。这种思考语言和计算的方法可能会在将来对我们有所帮助。例如,最近掌上型计算设备和嵌入式处理器的兴起使得人们对有限内存和有限计算能力的设备编程又重新恢复了兴趣。 在本书中当我们讨论某种特定语言的时候,我们一般都指的是这一语言的原始形式,或者是其在历史上很重要的形式。比如,“Fortran”指的是20世纪60年代和70年代早期的Fortran。这些早期语言被称为Fortran Ⅰ、Fortran Ⅱ、Fortran Ⅲ,等等。在最近几年,Fortran逐步演化,包括了更多现代特征,Fortran与其他语言的区别在某种程度上已经不太明显。同样,Lisp一般都是指60年代的Lisp,Smalltalk一般指70年代后期和80年代的Smalltalk,等等。 1.2 目标 在这本书中,我们所关心的是现代程序设计语言中出现的基本概念,它们之间的相互关系,以及程序设计语言与程序开发方式的关系。一个重复出现的话题是语言表现性与实现的简单性之间的折衷。对于我们考虑的每一个程序设计语言特征,都将研究在编程中能够使用它的各种方式,以及可以用来高效编译和执行它的各种实现技术。 1.2.1 总体目标 本书有以下总体目标。 理解程序设计语言的设计空间。这包括过去的程序设计语言的概念和构造,以及将来可能会被广泛使用的概念和构造。我们还会试图理解语言特征之间的一些主要的冲突和折中,包括实现代价。 通过各种程序设计语言之间的比较,更好地理解我们目前所使用的程序设计语言。 理解与各种语言特征所关联的编程技术。学习程序设计语言的一个方面,就是要学习解决问题、软件构造和开发的概念框架。本书中的很多思想都是职业程序员的共识。本书所介绍的内容和思考方式将会对你以后的编程有所帮助,如果你在一个软件公司工作或

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档