[读书笔记]C++语言的设计与演化[The Design and Evolution of C++]

本文探讨了C++语言的设计理念,强调了对程序员自由选择权的尊重,以及如何在保持低级操作和不安全特性的同时,通过系统化消除不必要的使用。作者提出C++的目标是使编程变得更愉快,支持多种编程风格,而不是强求单一的真理之路。文章还涉及了存储管理、异常处理、模板和多继承等关键特性,以及对C++未来发展的思考,如废料收集和名字空间的使用。
摘要由CSDN通过智能技术生成
[第1章 C++的史前时代]
  • C++的许多设计决策根源于我对强迫人按某种特定方式行事的极度厌恶。
    在历史上,一些最坏的灾难就起因于理想主义者们试图强迫人们“做某些对他们最好的事情”。
    这种理想主义不仅导致了对无辜受害者的伤害,也迷惑和腐化了施展权利的理想主义者们。
    我还发现,对于与其教义或理论出现不寻常的冲突的经验和实验,理想主义者往往有忽略它们的倾向。
    在理想出问题的地方,甚至当空谈家也要赞成的时候,我宁愿提供一些支持,给程序员以选择的权利。
  • 不同的人们确实会按不同的方式思考,喜欢按不同的方式做事情,对于这些情况的高度容忍和接受是我最愿意的事情。
  • 这样,C++被有意地设计成能够支持各种各样的风格,而不是强调“一条真理之路”。

[第2章 带类的C]
  • 带类的C和后来的C++仍然追寻着同一条路,维持了C的低级操作不安全特性
    与C不同的是,C++系统化地清除了使用这些操作的必要性,除了在那些必须使用它们的地方,而且只是在程序员明确要求时才使用不安全操作。
  • 用户定义类型和内部类型与语法法则的关系应该是一样的,能够从语言及其相关工具方面得到同样程度的支持。
  • 带类的C始终被作为一种就要在当时或下一个月里使用的东西,而不是一个在几年之后有可能发布某种东西的研究项目。

[第3章 C++的诞生]
  • 在X3J16 ANSI委员会的组织会议上,Larry Rosler,原来ANSI C委员会的编辑,对抱怀疑态度的TomPlum解释说,“C++就是我们想做但却无法做成的那个C语言”。
    这可能是有点夸大其词,但是对于C和C++的共同子集而言,这个说法与真理相距并不远。
  • 一个好语言不是设计出来的,而是成长起来的。
    这种修炼与工程、社会学和哲学的关系比与数学的关系更密切些。
  • 良好设计的关键是对问题的深入认识,而不是提供了多少最高级的特征。
  • 该书(C++程序设计语言,书生注)的开篇语是“C++是一种通用程序设计语言,其设计就是为了使认真的程序员能够觉得编程序变得更愉快了。”这句话被审阅者删掉了两次,他们拒绝相信程序语言的设计除了对生产率、管理和软件工程的那些严肃的唧咕声之外还能够有什么。
    。。。
    实际情况就是这样,无论审阅的人愿不愿意相信。
    我把工作的注意力集中于人,个人(无论他是否在一个小组里),程序员。

[第4章 C++语言设计规则]
  • 目标:
    C++应该使认真的程序员能够觉得编程序变得更愉快
    C++是一种通用的程序设计语言,它应该
    ——是一种更好的C
    ——支持数据抽象
    ——支持面向对象的程序设计
  • 一般性规则:
    C++的发展必须由设计问题推动
    不被牵涉到无益的对完美的追求之中
    C++必须现在就是有用的
    每个特征必须存在一种合理的明显实现方式
    总提供一条转变的通路
    C++是一种语言,而不是一个完整的系统
    为每种应该支持的风格提供全面支持
    不试图去强迫人做什么
  • 设计支持规则:
    支持一致的设计概念
    为程序的组织提供各种机制
    直接说出你的意思
    所有特征都必须是能够负担的
    允许一个有用的特征比防止各种错误使用更重要
    (例如,按照默认方式,所有的类成员都是私用的。
      当然,一个系统设计语言不应该禁止程序员有意识地去打破系统的限制,所以设计的努力
      应该更多地放在提供机制,帮助人写出好的程序方面,而不是放在禁止不可避免的坏程序方面。
      在长期的过程中程序员必然会学习。
      这种观点也是C语言传统上“相信程序员</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值