C2x将成为C语言的下一个ISO标准

预计将于2022年完成的C2x标准在C委员会的推动下一直在演化。InfoQ采访了Jens Gustedt,他正在委员会内部推进新标准,他还是即将出版的新书“Modern C”的作者。

Gustedt最近总结了委员会到目前为止的工作成果,发布了新标准的第一份工作草案。除了当前的C17标准相关工作,其他工作主要针对错误修复,C2x将包含旨在改进语言本身的规范性变更。

InfoQ:即将推出的C标准的主要目标是什么?什么将推动C的发展?

Jens Gustedt:新C标准的制定主要是为了完善一些目标,详见章程。关键点是这个标准旨在描述现有的实践,而不是发明本身。只要有可能,发明应该在现有的C编译器中进行,或者来自其他编程语言(事实上主要是C++)。也就是说,还有很多工作将清理现有的特性,追求语义上的模糊性,并添加可能有助于日常编码的小特性。

InfoQ:语言方面的变化有哪些是值得我们期待的?你能否提供一些你认为重要的语言新功能示例?

Gustedt:在语言和库级别,程序员直接可见的部分目前还没有太多定论。我的期望是我们将看到一些集成到C中的C++特性,例如属性、以某种形式编译所有数据类型的时间常量,以及初始化类型(也就是C++的auto feature)。此外,还有一个C++的协调计划,用于新的调用约定,它可以取代我们从一开始就一直在使用的错误码返回约定。有几个人确保与C++委员会保持紧密合作,他们在这些问题上处理得很好。

但是C标准还有另一个重要的作用,因为它基本上为我们的计算机架构和其他编程语言构建设置了机器模型。C标准将其称为“抽象状态机”。作为一个重要的特性,我们已经投票将最新的IEEE浮点规范集成到C标准中。我们还组建了一个工作组来修改“内存模型”,事关程序员可能会或者可能不会直接与计算机内存中数据裸表示交互、这可能将如何影响一些可能的优化以及这种字节和位的调整将如何变得安全可靠。这项工作遵循的是Peter Sewell(等人)关于“指针来源”的论文,我们希望我们最终得到的内存模型可以广泛适用于C系统软件和应用程序的多样性。

InfoQ:最近,原生语言(与解释型或JVM语言相对而言)一直受到极大的关注,包括Rust、Swift、Dart、Go和endash。C++也正在稳健发展当中。你能简单地描述一下你认为C特别擅长的用途或应用领域吗?

Gustedt:C最大的优点是效率、可移植性和稳定性。只要这些是软件开发当中存在的主要问题,那么C就应该被视为首选语言。

效率:在这里,效率可能是指一些非常不一样的东西:能量和内存效率(适用于小型或便携式设备、卫星),运行时效率(适用于中型或大型计算密集型计算)或速度(适用于科学可视化、游戏或网络通信 )。C在这些领域的效率是无与伦比的,其他编程语言倾向于引入大量的内存间接、动态行为,从而遏制了效率。

可移植性:C的抽象状态机旨在可移植到任何计算设备上。这个概念带来了很大的好处:通常为新CPU开发的第一批软件组件就是C编译器。因此,用C编写的代码,特别是操作系统和其他系统软件,可以进行快速的移植。大量的软件项目从中受益,Linux发行版是数千个软件包的集合,这些软件包可以很容易地移植到新架构上,并与现有主流平台的发展保持同步。

稳定性:C委员会致力于保证用户代码库的稳定性。你现在编写的C代码仍然可以在20年后仍然可以编译和运行。80年代或90年代写的代码今天仍然可以使用。此外,C还提供了一系列有限的特性,这些特性在工程学院的研究生阶段就应该掌握。因此,在数年甚至数十年后仍然可以保持可维护性。在C语言中,“遗留”有着不同的含义,好的C代码是真正的资产,而不是负担。

Gustedt在法国国家计算机科学与控制研究所(INRIA)和ICube实验室工作,领导ICPS(并行和科学计算)研究团队。

查看英文原文C2x Will Be the Next ISO Standard for the C Language

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值