网易首页 > 网易号 > 正文 申请入驻

C++之父Bjarne Stroustrup:我会为全球数十亿行 C++ 代码带来一个崭新的解决方案

0
分享至

作者|David Cassel

译者 | 王强

策划 | Tina

在 CppCon C++ 会议上,这位 C++ 的创建人明确了该编程语言中迫切需要的安全措施具体都有哪些。

Bjarne Stroustrup,这位 72 岁的 C++ 创建者上个月在编程语言年度大会上发表了前瞻性的主题演讲。

当 C++ 社区聚集在科罗拉多州奥罗拉市参加“CppCon”C++ 会议时,Bjarne Stroustrup 在一场演讲中向观众承诺,他将首先明确该编程语言所需的安全措施的具体类型,“然后我将向大家展示几十年来我们一直在这方面努力的成果。”

Stroustrup 花了一些时间来回应批评。批评者说问题出在 C++ 本身,解决方案应该是改用另一种语言。他还具体介绍了一项提案,该提案增加了新的安全工具来解决批评者指出的问题,最终会为全球数十亿行 C++ 代码带来一个崭新的解决方案。

反对更换编程语言的案例

在演讲一开始,Stroustrup 分享了一张题为“安全不仅仅是类型安全”的幻灯片,列出了从资源泄漏和溢出到内存损坏和计时错误的各种各样的安全问题。这里有并发错误、终止错误——当然还有类型错误。“人们一般提到的安全性只涉及内存安全——但这还远远不够……而且与其他语言(包括 C++ 和 C)互操作的需求往往缺乏关注。而且转换编程语言的成本可能会非常高。很少有人提到这一点……”

“再说了——到底选哪种语言来代替呢?就我从目前大家的建议来看,我们将用大约七种不同的语言来取代 C++。到替换完成时(40 年后),我们可能会有 20 个不一样的语言选项,而且它们必须能够互操作。这会是一大难题。”

Stroustrup 在演讲中还指出,“许多所谓的‘安全’语言将所有低级内容外包给 C 或 C++”,用这种办法来暂时逃避使用它们的语言来访问硬件资源甚至操作系统(通常是用 C 语言编写的),乃至“可信代码”的需求,这些代码实际上可能非常古老,隐藏在外部库中……或者是用完全不同的编程语言编写的。

Stroustrup 称我们目前的情况是“处于使用渐进和渐进方法的趋势中,而非只采取全新的方法。”一张幻灯片的结尾甚至引用了加尔定律:“一个有效的复杂系统总是由一个有效的简单系统演化而来。”

正如 Stroustrup 所见,“这种只在一头构建一个新系统,而不存在任何旧系统问题的想法是一种幻想。但这是一个非常流行的幻想。”

“我们接下来要走向何方?”

演讲进行到大约 54 分钟时,Stroustrup 告诉听众,“现在我想谈谈未来的事情:我们现在会走向何方……?”

Stroustrup 将我们目前的情况称为“一个机会”,提醒大家自 C++ 诞生以来,类型和资源安全一直是其目标。“我们当时拥有的硬件无法保证完全安全,现在也无法保证所有语言和所有用例的安全。”但 Stroustrup 不希望看到 C++ 的内容表达受到限制,事实上,他设想了一种仍然遵守该语言 ISO 标准的解决方案。“我们需要它是 C++。也就是说,我们能做的事情不应该受到限制,尽管我们做事的方式可能会受约束。”

Stroustrup 也不希望看到大量额外的运行时开销。“性能不应该有任何下降……实际上,一些编写安全代码的技术可以提高性能。我主要说的是编译器和静态检查,因为它是免费的,或者真的可以提高性能。”

Stroustrup 找到了他的解决方案:配置文件。(指的是需要遵循的一组规则,可以实现特定的安全保证。)它们由 ISO C++ 标准定义,解决常见的安全问题,例如指针和数组范围。在回答观众后来提出的,关于添加新工具的困难的问题时,Stroustrup 指出,C++ 编译器本身现在是一个相当复杂的静态分析器,并且还可以负责满足配置文件的要求。因此,谈到添加安全改进工具时,“我认为配置文件注释应该有助于解决这个问题。”

Stroustrup 提出了总体策略:使用静态分析来消除潜在错误。但“全局静态分析是无法承受的,”Stroustrup 补充道。“所以基本上我们需要一些规则来简化我们正在编写的内容,以便有效且廉价地进行本地静态分析...... 然后提供一些库来更好地依赖这些规则。”

一张幻灯片还指出了另一个优点:“支持从旧代码到提供安全保证的现代代码的逐步转换。”该幻灯片强调,将有一套标准的“基本”保证,以及更广泛、开放的可用保证。Stroustrup 说:“我想到的是类型和资源安全、内存安全、范围安全。算术安全之类的事情可以标准化。”并且还会有对不同代码片段应用不同保证的规则。

代码甚至可以得到应用保证的明确表达(从而让未来的读者放心)。Stroustrup 又切回了前面的幻灯片,也就是那张标题为“安全不仅仅是类型安全”的幻灯片,强调了资源泄漏、溢出、内存损坏、计时错误、并发错误、终止错误——当然,还有类型错误。

一张幻灯片简洁地说明了这一点:“小心”并不能扩展。因此,虽然核心指南可能建议安全的编码实践,但“我们需要强制执行的规则。”正如 Stroustrup 所说,“我们必须制定安全使用规则。我们必须提供方法来验证人们是否确实做了他们想做的事情。”Stroustrup 指出,他所描述的大部分内容都已经被尝试过,甚至是规模化的实践。“但没有哪里会将这一切整合成一个一致、连贯的整体。这就是我认为我们应该做的。”

一张幻灯片用六个词列出了公式:卫生规则 + 静态分析 + 运行时检查。Stroustrup 放了一张幻灯片,表示 C++ 可以消除许多常见错误,包括未初始化的变量、范围错误、空指针取消引用、资源泄漏和悬空引用。

演讲接近尾声时,Stroustrup 进一步阐述了细节。“我建议你采用基于模块的控制。”该幻灯片展示了它在代码中的工作机制。


export My_module[[provide(memory_safety)]];import std [[enable(memory_safety)]];import Mod [suppress(type_safety)]];

代码内控件也在开发中,它可应用于代码分段。


[[suppress(type_safety)]] X[[enforce(type_safety)]] X

Stroustrup 还对首批标准配置文件提出了建议。(类型安全、范围和算术)。Stroustrup 放了一包含 11 个新关键字的幻灯片,说道:“这里从语法方面总结了如何做到这一点。”

“这项工作正在进行中,”Stroustrup 告诉观众。“有相关论文,你可以去查一下。也有相关讨论。不过总体上我们还没有成型。”但是“我们在经典 C、‘带类的 C’以及 C++ 11 后已经走了很长一段路。”

最后一张幻灯片说的是“你能提供什么帮助”,Stroustrup 建议用户可以帮助完善配置文件,正式确定它们的规格。(“我的理想是像 Profiles Light 这样的东西,它提供了配置文件的大部分保证,但没法大包大揽,因为静态分析器还无法做到这一点。”)

他创建了一个 GitHub 存储库(https://github.com/BjarneStroustrup/profiles),“大家可以在其中提出建议,我也可以在里面放我的草稿等,这样我们就可以创建一个社区,设法在合理的时间内完成这些工作。”

这个存储库提出的问题是怎样才能让配置文件成为“满足各种 C++ 安全需求的全行业工具”,并将该概念称为一个框架。“必须开发并部署许多组件才能让工具广泛流行。大家已经做了很多工作,但广泛应用的工具却相对较少。这里是一个愿望清单。请尽你所能提供帮助。”

视频链接:https://youtu.be/I8UvQKvOSSw

https://thenewstack.io/bjarne-stroustrups-plan-for-bringing-safety-to-c/

声明:本文由 InfoQ 翻译,未经许可禁止转载。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
易建联丑闻持续!京城乔姐疑入狱,或将判10年,闺蜜曝被抓前细节

易建联丑闻持续!京城乔姐疑入狱,或将判10年,闺蜜曝被抓前细节

叶公子
2024-11-08 18:51:29
特朗普为何被称为“懂王”?一切还要从新冠疫情说起

特朗普为何被称为“懂王”?一切还要从新冠疫情说起

爆角追踪
2024-11-08 20:40:52
案例:四川一别墅无人居住,男子深夜潜入,竟发现屋中堆满上亿现金

案例:四川一别墅无人居住,男子深夜潜入,竟发现屋中堆满上亿现金

可儿故事汇
2024-11-08 21:20:16
郑钦文对手遭质疑!失600万奖金后世界第9炮轰:她抢走我年终资格

郑钦文对手遭质疑!失600万奖金后世界第9炮轰:她抢走我年终资格

我爱英超
2024-11-08 17:28:41
腾冲酒店拒绝日本人入住后续:全网力挺,礼物堆满大厅,一房难求

腾冲酒店拒绝日本人入住后续:全网力挺,礼物堆满大厅,一房难求

娜乌和西卡
2024-11-08 16:52:02
俄媒:普京称一些欧洲国家“缺脑子”,常在经济领域采取“政治化”且毫无根据决策

俄媒:普京称一些欧洲国家“缺脑子”,常在经济领域采取“政治化”且毫无根据决策

环球网资讯
2024-11-08 16:33:24
朝鲜对乌军开响第一枪,首战打得怎么样?朝军大获全胜无一人伤亡

朝鲜对乌军开响第一枪,首战打得怎么样?朝军大获全胜无一人伤亡

小lu侃侃而谈
2024-11-08 20:26:19
老人药店晕倒无人扶,店员报警后继续接待顾客惹质疑 急救专家、律师解读

老人药店晕倒无人扶,店员报警后继续接待顾客惹质疑 急救专家、律师解读

红星新闻
2024-11-08 20:59:06
中国工程院院士评价国内芯片企业:明知道外国的规定不合理、不平等,却还要买外国的芯片,跟着人家走

中国工程院院士评价国内芯片企业:明知道外国的规定不合理、不平等,却还要买外国的芯片,跟着人家走

逍遥漠
2024-11-07 18:01:18
特朗普“俄乌停战”方案曝光!留给乌克兰的时间不多了!

特朗普“俄乌停战”方案曝光!留给乌克兰的时间不多了!

刘豫州
2024-11-08 17:23:59
闹大了!老业主维权成功,网传惠州一楼盘1.4万降至6000被叫停…

闹大了!老业主维权成功,网传惠州一楼盘1.4万降至6000被叫停…

火山诗话
2024-11-08 17:51:57
中国网红丢人丢到国外,在卢浮宫门前拍内衣照,尺度大到打马赛克

中国网红丢人丢到国外,在卢浮宫门前拍内衣照,尺度大到打马赛克

南城无双
2024-11-09 00:45:55
李佩霞:大量生活照被扒,美腿抢镜,丈夫始终没露面,身份成谜!

李佩霞:大量生活照被扒,美腿抢镜,丈夫始终没露面,身份成谜!

来条娱吃
2024-11-08 11:16:49
普京发出与美方接触信号,同一天特朗普也称希望与普京“谈一谈”

普京发出与美方接触信号,同一天特朗普也称希望与普京“谈一谈”

环球网资讯
2024-11-09 06:24:22
受权发布|中华人民共和国主席令  (第四十号)

受权发布|中华人民共和国主席令  (第四十号)

新华社
2024-11-08 23:18:04
害怕被清算?多方消息透露: 奥巴马全家神秘离美,且去向未知

害怕被清算?多方消息透露: 奥巴马全家神秘离美,且去向未知

现代春秋
2024-11-08 21:56:27
好消息!铁路部门规定!60岁以上老人乘坐火车和高铁,可以享受这些福利!

好消息!铁路部门规定!60岁以上老人乘坐火车和高铁,可以享受这些福利!

书法集
2024-11-07 20:32:38
湖南一小区内3人被杀身亡,死者身份和事因流出,事发全过程曝光

湖南一小区内3人被杀身亡,死者身份和事因流出,事发全过程曝光

温柔看世界
2024-11-08 12:33:37
准确预言特朗普当选的神鹰巫师再发声:放弃海峡那边的岛,活下去

准确预言特朗普当选的神鹰巫师再发声:放弃海峡那边的岛,活下去

风月观主
2024-11-08 08:10:02
美媒爆料:特朗普与泽连斯基通话期间 马斯克闪现加入对话

美媒爆料:特朗普与泽连斯基通话期间 马斯克闪现加入对话

财联社
2024-11-09 04:39:04
2024-11-09 09:46:44
InfoQ
InfoQ
有内容的技术社区媒体
10354文章数 50874关注度
往期回顾 全部

科技要闻

特斯拉盘中飙涨超10%,市值突破1万亿美元

头条要闻

郑钦文将勇闯年终总决赛夺冠战 世界排名步入Top5

头条要闻

郑钦文将勇闯年终总决赛夺冠战 世界排名步入Top5

体育要闻

曾在英冠坐板凳的他 是当今最火爆的射手

娱乐要闻

叶珂闪现闺蜜直播间,黄晓明评论沦陷

财经要闻

10月CPI同比上涨0.3% PPI同比下降2.9%

汽车要闻

售10.98万起 银河星舰7 EM-i开启预售

态度原创

手机
旅游
教育
本地
公开课

手机要闻

小米海外传佳讯,印尼市场排名第一

旅游要闻

4名女游客上山迷路,多方连夜搜寻成功救出

教育要闻

药学专业就业前景怎么样,要不要考研

本地新闻

塞上青城|“宜养”呼和浩特 你爱了吗?

公开课

AI如何揭开大自然和宇宙的奥秘

无障碍浏览 进入关怀版