C++编程语言的批判分析
需积分: 0 84 浏览量
更新于2024-10-21
收藏 352KB PDF 举报
"A Critique of C++" 是一本关于C++编程语言的批判性分析书籍,作者Ian Joyner在书中探讨了1990年代的编程语言趋势,并针对C++提出了具体的批评点。
1. **INTRODUCTION** - 介绍部分可能涵盖了C++的普及背景及其在1990年代编程语言领域的重要性。它可能讨论了C++的设计哲学和它对当时软件开发的影响。
2. **THE ROLE OF A PROGRAMMING LANGUAGE** - 这一部分深入讨论了编程语言的角色和目的。Joyner可能阐述了编程语言如何影响编程实践,以及它在沟通、抽象、精度、工具集成、正确性、类型系统、冗余检查、封装、安全性和部署实施等方面的重要性。
- **2.1 PROGRAMMING** - 强调了编程语言作为解决问题的工具的特性。
- **2.2 COMMUNICATION, ABSTRACTION AND PRECISION** - 讨论了语言如何促进开发者之间的沟通,以及其提供抽象和精确表达能力的能力。
- **2.3 NOTATION** - 关注语言的语法和符号,它们如何影响代码的可读性和理解。
- **2.4 TOOL INTEGRATION** - 讨论了语言与开发工具的集成,这对于现代软件开发至关重要。
- **2.5 CORRECTNESS** - 阐述了语言如何支持编写正确无误的代码。
- **2.6 TYPES** - 研究类型系统的角色,它是确保程序安全性的重要手段。
- **2.7 REDUNDANCY AND CHECKING** - 探讨了语言中的冗余检查机制,如静态类型检查。
- **2.8 ENCAPSULATION** - 说明了封装在面向对象编程中的作用,它保护数据并限制访问。
- **2.9 SAFETY AND COURTESY CONCERNS** - 提及了语言如何处理安全性问题以及如何促进良好的编程习惯。
- **2.10 IMPLEMENTATION AND DEPLOYMENT CONCERNS** - 讨论了从开发到实际部署过程中可能出现的问题。
- **2.11 CONCLUDING REMARKS** - 总结了编程语言在软件开发中的全面影响。
3. **C++ SPECIFIC CRITICISMS** - 本章节专门针对C++提出了一系列批评点,Joyner可能指出了C++的一些设计选择和实现中的不足之处,例如:
- **3.1 VIRTUAL FUNCTIONS** - 关于虚函数的使用和它们对性能的影响。
- **3.2 GLOBAL ANALYSIS** - 可能涉及到全局变量和全局分析的问题。
- **3.3 TYPE-SAFE LINKAGE** - 讨论了类型安全链接的重要性及其在C++中的实现。
- **3.4 FUNCTION OVERLOADING** - 关于函数重载的潜在复杂性和误导性。
- **3.5 THE NATURE OF INHERITANCE** - 分析了C++中的继承机制,可能包括单继承和多继承的讨论。
- **3.6 MULTIPLE INHERITANCE** - 提到了多继承可能导致的“菱形问题”和其他复杂性。
- **3.7 VIRTUAL CLASSES** - 讨论了虚拟类的使用及其对内存管理和性能的影响。
- **3.8 TEMPLATES** - 关于模板的泛型编程特性及其可能带来的编译时膨胀问题。
- **3.9 NAME OVERLOADING** - 指出名称重载可能导致的混淆。
- **3.10 NESTED CLASSES** - 对嵌套类的使用和潜在影响进行了评价。
- **3.11 GLOBAL ENVIRONMENTS** - 考虑了全局环境对C++程序的影响,包括命名空间和全局作用域的挑战。
书中的其余章节可能继续深入这些主题,包括多态性、类型转换、运行时类型信息(RTTI)、新的类型转换、Java与C++中的类型转换差异,以及C++中的一些特殊语法构造,如匿名参数、无名构造函数等。
这本书提供了对C++的深度反思,不仅探讨了语言本身的设计决策,还揭示了这些决策对软件工程实践的影响。Joyner的观点旨在引发对C++和更广泛编程语言设计的深入思考。
2007-10-26 上传
2019-10-09 上传
2019-03-01 上传
2019-10-10 上传
2011-01-08 上传
2022-07-11 上传
2021-06-29 上传
2012-04-10 上传
2018-03-20 上传
点点吃得太多了
- 粉丝: 180
- 资源: 683
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍