博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C2x将成为C语言的下一个ISO标准
阅读量:6371 次
发布时间:2019-06-23

本文共 1571 字,大约阅读时间需要 5 分钟。

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

Gustedt最近总结了委员会到目前为止的工作成果,发布了新标准的。除了当前的相关工作,其他工作主要针对错误修复,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(并行和科学计算)研究团队。

查看英文原文

转载地址:http://qvyqa.baihongyu.com/

你可能感兴趣的文章
Get File Name from File Path in Python | Code Comments
查看>>
显示本月每一天日期
查看>>
[转]java 自动装箱与拆箱
查看>>
NET的堆和栈04,对托管和非托管资源的垃圾回收以及内存分配
查看>>
think in coding
查看>>
IdHttpServer实现webservice
查看>>
HTML的音频和视频
查看>>
Unsupported major.minor version 52.0
查看>>
面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式
查看>>
优酷网架构学习笔记
查看>>
把HDFS里的json数据转换成csv格式
查看>>
WEEX-EROS | 集成并使用 bindingx
查看>>
广州牵引力来告诉你学编程先学什么语言好?
查看>>
广州牵引力总结初学者怎样学好UI设计?
查看>>
使用Metrics方法级远程监控Java程序
查看>>
Spring核心系列之Bean的生命周期
查看>>
VasSonic源码之并行加载
查看>>
小程序 LRU 存储设计
查看>>
Android 多线程之阻塞队列
查看>>
Haskell 在 macOS 下的环境搭建
查看>>