您好,欢迎光临本网站![请登录][注册会员]  
文件名称: C++语言的设计和演化.pdf
  所属分类: C++
  开发工具:
  文件大小: 14mb
  下载次数: 0
  上传时间: 2012-10-20
  提 供 者: huda****
 详细说明: 写在纸面上的历史--就是本书!                   --评《C++语言的设计和演化》   严格地说,这是一本令人敬畏的书。她是理解C++语言之所以成为今天这个样子,C++语言的缔造者在其漫长而又迅猛的发展过程中不断权衡和取舍语言特性最真实、最令人信服的史篇。作者Bjarne Stroustrup--C++语言之父知识的广博和思维的独到让人瞠目其后,语言文字的运用表达方式却又让人瞠目结舌。本书是我所见过的知识压缩得最紧密的书籍,似乎有无穷多的设计要素不断地被抛掷出来,而令人几乎要崩溃的是,艰深而又异常费解的设计思想的写作笔调竟是如此的晦涩和生冷,没有一点轻松或是幽默又或是风趣的平滑过渡、承转启接。艰难的读毕全书,就如一巨石紧压胸口,几已窒息。每每读完该书一节,但觉头昏脑胀且又恶心欲吐,可见该书之畏。   这显然不是一本普通的书,也并不针对普通的读者(至少我是这样认为)。因为本书探讨的是作者自C++语言诞生至今,整个语言设计的思想、理念发展变迁的过程。她既要求读者对C++语言程序设计的方法非常熟悉,能够理解C++程序设计的思想,又必须对程序设计语言编译器的构造有一定的了解(至少学过一门编译原理课程或是读过编译方法又或是程序设计方法 学方面的书)。我更愿意将该书看作是一本关于C++哲学的书,或是Bjarne Stroustrup的哲学。   无论怎样,在读过该书之后,我都强烈的感觉到Bjarne Stroustrup 对C++语言深刻而又强有力的影响。C++语言并非是从半空里跳出来的,她深深的根植于C语言的底层系统程序设计能力与Simula语言数据抽象和面向对象程序设计方法的能力。高层与底层设计的支持如此完美的结合于一体,即使是到了计算机科学发展日益成熟的今天,亦只有C++才真正做到。无论在书中的哪一段,总能强烈的体现出作者在对C++语言构思与设计过程中的选择和权衡。C++之所以能获得如此成功,就在于她蕴C而生,并做得比C更好一些,尽力摒弃C的某些丑陋之处(很多时候,出于对C兼容性的考虑,完全避免是不可能的。正如Stroustrup一论文之标题《C++: 尽可能的与C靠近,但又不过分的近》),同时要实现对数据抽象和面向对象程序设计风格的直接支持。   作者始终都强调这样一种观点:C++语言不是一件仅供观赏的艺术品,它是立足于工程设计实践,为认真的程序员提供的一件足够强大而灵巧的工具,同时也使程序设计开发过程变得愉快。C++语言具有丰富的语言特性,但绝不因此而损害了语言内在的一致性,以至于成为一大堆花巧的、新式的、众多用户强烈要求的、公司利益的、设计者个人爱好的特征的集合。   C++语言自1979年4月诞生至今,逐步由一个预处理程序Cpre演变成强大的程序设计语言开发环境。由最初作者在贝尔实验室的朋友用作科研项目的试验性语言发展至当今世界最流行的高级系统程序设计和面向对象的开发语言。不可否认,任何事物的发展都不会总是一帆风顺,C++也不例外。即使是到了今天,仍可看见对C++语言地位的争执:C++已经过时了,某某某是最流行的开发语言。某某某是最正宗的面向对象程序设计语言,C++对面向对象的支持不完备。某某某具有完善的平台移植性,完全超越了C++。按照作者的观点,C++定位为一种能够如C语言般支持底层的复杂系统程序设计,而又不失C的效率,同时能支持针对大型应用程序开发的数据抽象和面向对象设计。很清楚,按这一定位,C++在该领域里是无可匹敌的。事实上也只有C++语言才真正实现了同时对高低层次的合理支持。与C语言不同,C++语言是一种大型语言,无论是她的设计还是实现都显得非常困难。不仅如此,C++的每一个特征都是经过了作者的深思熟虑和实践的直接验证。每一个特征都有其存在的必要性,同时又必须兼具内在的一致性。但是问题并不是表面上看起来的那样简单,因为C++提供对C语言的支持,而当C语言的设计与C++的关键特性相冲突时,应该如何处理?对于一种新的、对用户有益的特征出现,而又难以在现实中主流的系统中获得合理的性能时又该怎么做?如果对某一特性用户有强烈的需求而该特性并入语言自身结构并不合适或损害了语言的通用性时又该怎么办?   请看作者的回答:   一般性规则:   1、 C++的发展必须由实际问题推动   2、 不被牵涉到无益的对完美的追求之中   3、 C++必须现在就是有用的   4、 每个特征必须存在一种合理的明显实现方式   5、 总提供一条转变的通路   6、 C++是一种语言,而不是一个完整的系统   7、 为每种应该支持的风格提供全面支持   8、 不试图去强迫人们做什么   作者正是按照这样经过仔细选择的具有指导意义的规则、原理的集合,实现了C++,并形成了一致的C++风格。很明显,从这些一般性的规则中,我们可以看到作者的人文思考对C++设计哲学的影响。正如作者在第一章 C++的史前时代 一般性背景中所谈到:文学、历史、哲学思想和实用主义对C++的影响与计算机科学、数学的影响一样大。   通读全书,对于每一位认真而细心的读者来说都是一次巨大的挑战。这种挑战之所以存在的最大原因在于对C++语言这样一门大型系统软件艰深的设计方法和多得惊人的技术细节的掌握。有鉴于此,我认为对该书至少有三种不同的阅读线路针对三类不同类型的读者。对C++语言非常感兴趣的读者不妨阅读书中关于C++发展的历史及其演进的各个不同阶段,并可兼看一些C++设计哲学和技术细节。而对于在C++语言方面资深的程序设计开发人员而言,则应深入到C++程序设计的技术细节,再兼读部分关于C++自身构造的规则和理论。而欲从头至尾每一个细节都不愿放过的汲取该书全部的思想内涵,则对于程序设计语言实现者更为容易一些。   总的来说,这是一本好书,这是一本并不易读的好书。阅读她,你将会学到很多很多,但更重要的是你是否想到了更多更多…    ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: C++
 输入关键字,在本站1000多万海量源码库中尽情搜索: