C++语言的设计和演化

[美] Bjarne Stroustrup

出版时间

2020-09-19

ISBN

9787115497116

评分

★★★★★

标签

编程

书籍介绍

本书是C++的设计者Bjarne Stroustrup关于C++ 语言的最主要著作之一(另一本是《C++程序设计语言》)。在这本书中,作者全面论述了C++ 的历史和发展,C++中各种重要机制的本质、意义和设计背景,这些机制的基本用途和使用方法,讨论了C++ 所适合的应用领域和未来发展前景。本书在帮助人们深入理解C++ 语言方面的地位无可替代,值得每个关心、学习和使用C++ 语言的专业工作者、科研人员、教师和学生阅读。在这本书中,作者还从实践的角度出发,讨论了许多与程序设计语言、系统程序设计、面向对象的技术和方法、软件系统的设计和实现技术等有关的问题,值得每一个关心这些领域及相关问题的计算机工作者和学生们阅读参考。

AI导读
核心看点
  • C++之父亲述语言设计哲学与历史
  • 深入解析核心机制的设计背景与取舍
  • 探讨实用主义在编程语言设计中的应用
适合谁读
  • 希望深入理解C++设计原理的专业人士
  • 对编程语言演化历史感兴趣的开发者
  • 从事系统程序设计的研究人员与学生
读前提醒
  • 部分章节翻译生硬,建议结合英文原版
  • 内容基于早期标准,需结合现代C++理解
  • 作者文风偏哲学思辨,阅读需耐心与思考
读者共识
  • 理解设计哲学比掌握语法特性更为重要
  • 翻译质量参差不齐,部分读者反映阅读痛苦
  • 虽内容略显陈旧,但仍是不可替代的经典之作

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "我的长期(持续了至少24年)爱好是历史。在大学里和毕业以后我还花了许多时间研究哲学。对于究竟应该把自己理性的怜悯放在哪里,以及为什么,这些学习给了我一种非常自觉的观念,经过这样长时期的思考训练,较之理想主义者而言,我觉得自己更喜欢实用主义者,而对神秘主义我更是无法赞成。因此,我喜欢亚里士多德胜过柏拉图,喜欢休姆胜过笛卡尔,对帕斯卡我只能表示失望。我发现像柏拉图或者康德的那种宽泛完整的“系统”是非常奇妙的,但却对它们完全不能感到满意,因为它们看起来是非常危险的——远离了我们的日常经验和个人的基本特性。 我发现了克尔凯戈尔对个人的几乎狂热的关心以及敏锐的心理洞察力,这笔黑格尔和马克思的抽象的宏伟蓝"
  • "我设计C++是为了解决一个问题,而不是想证明一种观点"
  • "在历史上,一些最坏的灾难就起因于理想主义者们试图强迫人们“做某些对他们最好的事情”。"
  • "经过了几年的讨论,给我留下最深刻印象的是,一个人可以站在任何位置,编织出一套能使人信服的逻辑论据。在论述异常处理的开创性论文中就这样做的。我们现在是站在古希腊哲学家的位置,在争论着宇宙的本质方面,如此的激烈而敏锐,以至于根本就忘记去研究它了。"
  • "对文学的热爱更增强了我的认识:仅仅依据理论和逻辑做决策是没有希望的。.... 经常遇到这种情况,如果我试图取缔一个我个人不喜欢的语言特性时,我总抑制住自己这样做的欲望,因为我不认为自己有权把个人的观点强加给别人。我知道通过强力地推行逻辑,毫无同情心地谴责“思想中坏的、过时的、混乱的习惯”,可能在相对短的时间内能有更多的建树。但是,人的代价总是最高的。"
  • "选用派生(derived)和基(base)作为名字,是因为我老记不住到底哪个是子(sub)哪个是超(super),而且我也不是惟一有这种特别问题的人。我也注意到,许多人认为子类比它的超类信息更多是与直觉相矛盾的。"
  • "One conclusion I drew from the wildly divergent comments on the HOPL-2 paper - and from many other sources - is that there is no agreement on what a programming language really is and what its main purpose is supposed to be. Is a programming language a tool for instructing machines? A means of commu"
  • "This implies that language design parts ways from the "purer'' and more abstract disciplines such as mathematics and philosophy. To serve its users, a general-purpose programming language must be eclectic and take many practical and sociological factors into account. In particular, every language is"
作者简介
Bjarne Stroustrup 被誉为“C++之父”,1950年出生于丹麦,先后毕业于丹麦奥胡斯大学和英国剑桥大学,曾担任AT&T大规模程序设计研究部门负责人,AT&T、贝尔实验室和ACM成员,德州农工大学计算机系首席教授,德州农工大学“杰出教授”。现任摩根士丹利信息技术部门董事总经理、哥伦比亚大学计算机科学系客座教授,美国国家工程学会会员,IEEE、ACM、CHM资深会员。
目录
扉页
版权
内容提要
译者序
译者简介

显示全部
用户评论
从某种意义上讲这本书才是我真正的C++入门书之一(不过也得益于极客时间的相关网课),之前零散的概念总算能以一种理解形式串联起来了。它并不单独讲语法和概念,也花了不少篇幅讲不同语法概念的层次和关联。 P.S. 这本书某种程度上可以划在“哲学”的分类当中233 看完“一般性的背景”这节竟然有点想哭,虽然我一向对“理性”这个词没有好感,然而这种克尔凯郭尔式的“理性的同情”却是我能感受到共鸣的。
为什么打5星? 只是因为不能打6星而已。。
看的是 Cpp-Club 的翻译版,工作上用的是 C++17. C++ 提供了太强的能力和太多的遍历,委员会也在 C++11/20 一步一步做出了伟大的变更。有的地方(比如列表初始化)看完让人苦笑。但尽管 C++98 或者 C-Style 的写法可能应该被丢进垃圾箱,但是异常、模板、type deduce 也成为使用者不可避免的问题。用户不得不成为一个这些方面的专家,才能写出不错的代码。哎希望 2020 年的 C++ 早点普及吧,坐等 concept/任务库/modules. (哎,有的时候我觉得我只要 flexible 和 RAII)...
C++早期演化之路,算是对前期发展历程的一个详细了解吧!
下载
收藏