C++ 之父反驳白宫警告:自诞生第一天起,C++ 的目标就一直是提高安全性

整理 | 郑丽媛

上个月,美国白宫国家网络主任办公室(ONCD)在一份主题为《回到基础构件:通往安全软件之路》的 19 页 PDF 报告中,呼吁开发人员停止使用容易出现内存安全漏洞的编程语言,例如 C 和 C++,应改用 Rust 等内存安全编程语言进行开发。

对于这个观点,上周 C++ 之父 Bjarne Stroustrup 在接受 InfoWorld 的采访时进行了反驳:

“我感到惊讶的是,这些政府文件的作者似乎对当代 C++ 的优势以及它为提供强大安全保证所做的努力都视而不见。另一方面,他们似乎已经意识到,编程语言只是工具链的一部分,因此改进工具和开发流程至关重要。”

Stroustrup 强调,这门于 1979 年设计的编程语言,自诞生的第一天起,其目标就一直是提高安全性:“只要将 K&R C 语言与最早的 C++、早期的 C++ 以及当代的 C++ 进行比较就知道了。”围绕这个问题,Stroustrup 曾在 CppCon 2023 大会的主题演讲中概述了这一演变过程,可以发现许多高质量的 C++ 都是使用基于 RAII(Resource Acquisition Is Initialization)、容器和资源管理指针的技术编写的,而非传统的 C 风格指针乱码。

除此之外,Stroustrup 还提到了他们为改进 C++ 安全性做出的一些努力:“在安全性方面主要存在两个问题。在数十亿行的 C++ 代码中,很少有代码能完全遵循现代准则,而且人们对安全重要性的认识也存在差异。我和 C++ 标准委员会正在努力解决这个问题。”

“Profiles 是一个框架,用于说明一段代码所需要的 guarantees,并使实现能够验证这些保证。委员会网站上有相关文件,搜索 WG21 即可(https://www.open-std.org/jtc1/sc22/wg21/)。然而,我们中的一些人并不想等待委员会必然缓慢的进展。

Profiles 这个框架,允许我们逐步改进 guarantees,例如较快地消除大多数 range errors,并通过局部静态分析和最小化运行时检查逐步将 guarantees 引入大型代码库。我对 C++ 的长期目标,一直是在需要的时候提供类型和资源安全。也许当前对内存安全性的推动——我想要的 guarantees 的一个子集——将有助于我的努力,C++ 标准委员会中的许多人也都赞同我的观点。”

参考链接:https://www.infoworld.com/article/3714401/c-plus-plus-creator-rebuts-white-house-warning.html

推荐阅读:

7万字:2023腾讯云容器和函数计算最佳实践精选集上线,等你翻「阅」!

OceanBase独立运营后首次亮相,谈了两件事

Java 22 来了!

相关推荐

  • 瘫痪8年的29岁小哥成为马斯克脑机接口试验第一人,手术2个月后,现身开启直播意念玩象棋!
  • 腾讯发布自研游戏AI引擎:3D城市布局效率提升百倍,UGC工具已上线《元梦之星》
  • 黄仁勋组局,Transformer七子首次重聚对谈 | 中文实录
  • 脑后插管玩《文明6》!马斯克Neuralink首个人类志愿者,直播意念下象棋
  • 突发!Stable Diffusion核心团队被曝集体离职
  • 传奇大爷拿下“数学界诺贝尔奖”;陶哲轩祝贺:他本应更知名
  • 今日代码 PK | 避免循环查库
  • 教你一招,保护你的项目代码!
  • JDK22 发布!
  • 端到端加速企业GenAI创新,英伟达NIM微服务成为软件企业看中的亮点!
  • 巨头争锋:AGI来到临界点?
  • 突发!Stability AI核心团队已分崩离析,抢功、侵权、撤资争议不断,AI界有自己的“春山学”
  • 使用 BigDL-LLM 加速 Intel * 数据中心 GPU 上的 LLM 推理
  • 裁员潮持续,劝所有程序员早点做个人规划!| 极客时间
  • Sora很难跟进?微调就不是一个岗位?大力出奇迹将继续适用?大模型将对软件生态带来哪些变化?
  • 没有App,也没有 App Store,未来的手机会干掉全部应用开发人员吗?
  • 杭州/深圳内推 | VIVO影像算法研究部招聘AIGC+计算摄影方向算法工程师/实习生
  • 港科大(广州)开源智慧交通新成果,用AI大模型控制红绿灯
  • 能否在追问中坚持判断?揭秘大语言模型的判断一致性挑战
  • 最新爆料!GPT-5已有客户上手体验:性能惊人,或将在夏天发布