【AICon】AI 大模型超全落地场景&最佳实践 了解详情
写点什么

以现代化 C 语言为目标的 C2 语言

  • 2018-02-22
  • 本文字数:1199 字

    阅读完需:约 4 分钟

8 月 16 - 19 日,与零一万物李开复、蔚来李斌、面壁智能李大海,及工商银行、交通银行、华夏银行等 100+ 行业专家相聚 FCon x AICon

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

C2 是一种新的编程语言,其目标是将 C 改进为一种适用于底层编程的语言,例如实现启动引导、内核、驱动和一些系统层面的工具。

据 C2 语言创立者 Bas van den Berg 介绍,C2 在任务声明称其将保留 C 中的适用部分,同时改进那些与其 40 年历史背道而驰的部分。其中一些弃用的部分包括:对头文件的使用(它严重地降低了编译器的性能)、复杂类型定义(在C2 中被模块系统统一类型语法替代)。C2 还引入了支持LTO(链接时优化,link-time optimization)的集成构建系统。同时,宏系统的实现也在进展中。

下面给出的一个典范的“Hello World”C2 程序例子,其中展示了 import模块和类型系统的使用:

复制代码
module hello_world;
import stdio as io;
func i32 main(i32 argc, char*[] argv) {
io.printf("Hello World!\n");
return 0;
}

C2 中并无意引入一些高层特性,例如面向对象的支持和垃圾回收机制。

InfoQ 采访了 Bas van den Berg。

InfoQ: C2 的主要目标是什么?

Bas van den Berg:我使用 C 语言已近 20 年。在此期间,我用 C 编写和修改了一些驱动程序、低层或高性能应用、实时系统等。这些工作通常是使用 C 实现的。我的确非常喜欢 C,但有些事情正在逐渐过时。由于我没有看到任何其它语言涉足低层或内核等 C 领域,我也不想再花 20 年时间去解决同样的问题,所以我创立了 C2。C2 的主要目标是解决 C 语言中的一些常见问题,改善开发者的使用体验。

InfoQ: 你是否设想过将现有的 C 代码库迁移到 C2?这样做是否有好处?

Berg:C 程序几乎从来都不是独立工作的,而是要使用其它的 C 程序库。C2 同样如此。因此,我们需要 C2 程序能轻松使用 C 程序库,而 C 程序库也能与 C2 库集成。作为演示,我已在几天将 Lua 和 Vulkan 接口“移植”到 C2。在“c2examples”中给出了一个演示实现,展示了 C2 的工作原理。我个人在开发 C2 时,会将 C 程序移植到 C2,查看其中是否存在不适用之处。如果有的话,就在 C2 中进行修正。通过这种方式,我改进了 C2 的语法。移植当前 C 程序的优点,就是更易于整体使用程序优化,编译时间也更快。

InfoQ: 当前 C2 语言及其工具的成熟度如何?你能对该语言何时可用于生产环境给出一个预测吗?

Berg:在目前的形式下,我并不建议在生产代码中使用 C2。但对于一些较小的项目,C2 绝对适用。由于 C2 语法尚在改进中,因此任何可能的更新都会对已有的程序造成破坏。

C2 将会改进的两个方面,分别是增加宏子系统(仍处于设计阶段),以及扩展软件库子系统。后者意在支持源库和 Cargo 类工具对外部软件包的管理。我目前正致力于推出软件库系统,应该可在今年第二季度逐步发布。之后,我计划推出宏子系统。

按 van den Berg 自身的经验,使用 C2 可以加快开发速度达 30%。C2 是开源的,可以安装在 Linux、macOS Windows 上。

查看英文原文: C2 Aims to Modernize the C Language

2018-02-22 18:002767
用户头像

发布了 391 篇内容, 共 130.4 次阅读, 收获喜欢 256 次。

关注

评论

发布
暂无评论
发现更多内容

T-BOX专业分享

SOA开发者

支持 10 亿日流量的基础设施:当 Apahce APISIX 遇上腾讯

腾源会

腾讯云 开源 APISIX OTeam

Vite + Vue3 + OpenLayers 同步两个地图基础操作

德育处主任

大前端 Web 地图 vite openlayers

首个RISC-V计算机芯片现身欧洲处理器计划

WorkPlus

直播报名 | 超低延时直播架构解析

百度开发者中心

最佳实践 方法论 活动 直播

如何做竞品分析?

石云升

产品经理 产品思维 9月日更 产品分析

12 堂干货直播课,8 位 Serverless 大咖带你零基础晋级 Serverless 高手

阿里巴巴中间件

阿里云 Serverless 云原生 中间件

自建开源Cassandra与GaussDB(for Cassandra)性能对比测试报告

华为云数据库小助手

性能分析 GaussDB 华为云数据库 GaussDB(for Cassandra) 开源Cassandra

这本Alibaba“绝密”SpringBoot精髓到底厉害在哪里

Java 程序员 面试 springboot 计算机

大众汽车迟到的软件优先思维

SOA开发者

DPDK分析学习之全网唯一的DPDK教学课程丨虚拟化高性能专家之路

Linux服务器开发

网络协议 虚拟化 Linux服务器开发 DPDK 高性能网络

如何用时序数据库 CTSDB 与 TARS 结合,解决海量监控数据难题

腾源会

数据库 大数据 开源 TARS CTSDB

Alibaba竟流出全套的Java核心技术手册,看过的人都说好!

Java 程序员 架构 面试 计算机

残疾人大学生就业难?「低代码」应用,让就业更简单!

优秀

低代码

云信小课堂 | 聊天室内容审核很头疼?3步解决!

网易云信

人工智能 AI 视频

如何高效掌控K8s资源变化?K8s Informer实现机制浅析

腾源会

云原生 k8s

【重磅】Apache InLong(incubating) 发布 0.10.0 版本

腾源会

Apache 开源 InLong

与顶级互联网公司技术大佬面对面聊聊RocketMQ吧!

阿里巴巴中间件

阿里云 开源 RocketMQ 云原生 中间件

中小企业自媒体为何难做:定位不准期望值过高

石头IT视角

一朵云、一张网、一体化 ——GRTN 打造最佳流媒体场景实践

阿里云视频云

云计算 阿里云 边缘计算 视频云 流媒体传输

Webrtc ICE 框架

webrtc developer

WebRTC p2p ICE

从技术到商业:2021 DEMO CHINA创新中国峰会正式开启

创业邦

被 Docker 日志坑惨了

AlwaysBeta

Docker 容器 运维

Nebula Graph 源码解读系列 | Vol.01 Nebula Graph Overview

NebulaGraph

redis--数据库实现

en

2021下半年全新京东商城亿级并发架构设计,不学习你就OUT了!!

Java 程序员 面试 计算机 京东

Micro Focus 发布年度安全运营报告,洞察后疫情时代企业安全运营新趋势

丧心病狂!阿里内部Spring Cloud高薪笔记流失,GitHub夜获星百万

Java 程序员 面试 计算机 阿里巴巴‘

工业互联网的两种极端想法和两点反思

iNeuOS工业互联网操作系统

大数据 物联网 智能制造 iNeuOS工业互联网

阿里独家!GitHub上点击量超百万的「操作系统和计算机网络」PDF震撼开源

Java 程序员 面试 计算机 Alibaba

我的9年开源之路:395 Patch、20+Feature,背后只有努力与热爱

腾源会

腾讯云 开源 虚拟化 Linux内核 kvm

以现代化C语言为目标的C2语言_语言 & 开发_Sergio De Simone_InfoQ精选文章