The Design and Evolution of C++

Bjarne Stroustrup

出版时间

1994-04-08

ISBN

9780201543308

评分

★★★★★
书籍介绍
The inventor of C++ presents the definitive insider's guide to the design and development of the C++ programming language. Without ommitting critical details or getting bogged down in technicalities, Stroustrup presents his unique insights into the decisions that shaped C++. Every C++ programmer will benefit from Stroustrup's explanations of the 'why's' behind C++ from the earliest features, such as the original class concept, to the latest extensions, such as new casts and explicit template instantiation. Some C++ design decisions have been universally praised, while others remain controversial, and debated vigorously; still other features have been rejected based on experimentation. In this book, Stroustrup dissects many of these decisions to present a case study in "real object- oriented language development" for the working programmer. In doing so, he presents his views on programming and design in a concrete and useful way that makes this book a must-buy for every C++ programmer. Features*Written by the inventor of C++ Stroustrup *Provides insights into the design decisions which shaped C++. *Gives technical summaries of C++.* Discusses the latest language features: templates, exceptions, run-time type information, and namespaces. *Presents Stroustrup's unique programming and design views. 0201543303B04062001
AI导读
核心看点
  • C++之父亲述语言设计哲学与演化历程
  • 解析关键特性背后的取舍逻辑与权衡
  • 展现实用主义导向的工程化设计思维
适合谁读
  • 希望深入理解C++设计哲学的开发者
  • 对编程语言设计与演化历史感兴趣的读者
  • 具备一定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"
下载
收藏