新的系统编程语言 Hare 已发布,对标 C 语言

来源: OSCHINA
编辑: 罗奇奇
2022-04-26 08:31:34

开发者 Drew DeVault 公布了一门新的系统编程语言 Hare (野兔)。Hare 的开发时间接近两年半,它使用静态类型系统、手动内存管理和最小运行时,非常适合编写操作系统、系统工具、编译器以及其他低级高性能任务。

Drew DeVault 介绍,Hare 与 C 最相似,几乎所有用 C 语言编写的程序也可以用 Hare 编写,但 Hare 比 C 简单。

Hare 的 Hello World 

use fmt;

export fn main() void = {
	const greetings = [
		"Hello, world!",
		"¡Hola Mundo!",
		"Γειά σου Κόσμε!",
		"Привет, мир!",
		"こんにちは世界!",
	];
	for (let i = 0z; i < len(greetings); i += 1) {
		fmt::println(greetings[i])!;
	};
};

Hare 计算自己的 SHA-256 哈希:

use crypto::sha256;
use encoding::hex;
use fmt;
use hash;
use io;
use os;

export fn main() void = {
	const hash = sha256::sha256();
	const file = os::open("main.ha")!;
	defer io::close(file);
	io::copy(&hash, file)!;

	let sum: [sha256::SIZE]u8 = [0...];
	hash::sum(&hash, sum);
	hex::encode(os::stdout, sum)!;
	fmt::println()!;
};

Hare 基于 qbe 编译器后端,在占用空间小的情况下提供了良好的性能。

Hare 现状

目前已经有许多基于 Hare 编程语言的程序,比如

  • Himitsu :密匙管理和密码存储工具。它将密匙存储为键/值对,且允许存储附加信息,例如用户名、主机和协议。
  • Helios :x86_64 系统的微内核。
  • box :简单的 CLI 加密工具
  • btqd :bittorrent 守护进程
  • hare-libui :简单 GUI 的 libui 绑定

Hare 的 OpenGL 绑定正在进行中,目前可用于几个小游戏,比如俄罗斯方块:

使用 Hare 编写的简单光线追踪器:

Hare 标准库包含以下标准组件,该库为许多用例提供支持,而无需任何依赖关系。

  • 密码学套件
  • 网络支持
  • 全面的日期/时间操作
  • I/O 和文件系统抽象
  • Unix 原语,如 poll、fnmatch 和 glob
  • POSIX 扩展正则表达式
  • Hare 解析器和类型检查器

该标准库让 Hare 脱离了 POSIX 和 libc 的遗留问题,Hare 程序默认不与 libc 链接 。

Hare 未来

目前 Hare 正在保守开发中,标准库最大的任务是完成密码学实现,首要目标是支持 TLS (安全传输层协议)1.2 和 TLS 1.3。一旦达到 1.0 版本,Hare 将完成语言规范,冻结语言设计,且只对标准库进行向后兼容的更改。

此外,目前 Hare 仅支持三种架构:x86_64、aarch64 和 riscv64,未来将逐步添加 32 位平台和其他架构的支持。操作系统方面,目前 Hare 只支持 Linux 和 FreeBSD,计划在未来做更多的移植。

我们无意支持非自由平台,但由于语言是标准化的,如果需要,第三方实现或分支可以轻松开发 Windows 或 macOS 支持。

可以在路线图上查看有关 Hare 计划的更多信息。

Hare 相关链接

首页 | 下载 | 安装指南 | 文档 | 教程 | 路线图 | 社区 | 贡献者协议

展开阅读全文
精彩评论
现在各行各业不知道是怎么了内卷的厉害,尤其it行业一会一个新语言,一会一个新技术,不知道出了多少个说要对标某某语言的这种话术,go的出现说是要代替java,rust的出现说是要代替C,如果把C语言比作医圣张仲景的伤寒论,那么汇编语言就是黄帝内经,医圣当年写它的目的是但愿时间无疾苦,而且编程语言的出现也是为了解决各行各业繁杂的工作需求罢了,但是反观现在各行各业的需求没有解决的尽善尽美,反倒编程语言本身却变得无比复杂,每个人都想插一脚给编程语言输入自己的思想,就像很多近现代的医家治病不咋地,出书写论文可是一年一本,一月一篇,有时候想想也是奇怪,为什么伤寒论里面关于治病的法则都是一条一条的干条条,可能一条就解释一个病症,对应一个方剂,而现代医家的书籍,像什么医宗金鉴,景岳全书,当然了我不是批判这类书不好,我只是觉得写的太过于繁杂,反而会导致人们对于疾病的本身会胡乱猜想,我挺喜欢金元四大家的师傅张元素写的一本书《医学启源》,这本书虽然很薄,但是从理法方药都讲的实在,而且要知道张元素就是用这本书教出了四大家:刘完素也称刘河间,张从正,李杲也称李东垣,朱震亨也称朱丹溪,当然了近现代也有比较厉害的医学著作,像《李可老中医急危重症疑难病经验专辑》正本书也很薄,但是内容都是干货;张锡纯的《医学衷中参西录》书不厚,但是只要你看了研究了,尝试用里面的方子就可以治好一些疑难杂症。医学的本质是治病救人,it技术的本质也是叫人类生活过的更加美好方便,而不是在这看各位大神一味的炫技
2022-04-26 10:28
52
举报
hello world没中文版, 不用
2022-04-26 10:35
26
举报
出现过许多所谓对标 C 的语言,多数都变成了历史的尘埃
2022-04-26 09:00
20
举报
英语编程语言太多了,已经没兴趣了解了,是时候出个牛逼的中文编程语言了,这样才能激发人们的探索欲望
2022-04-26 13:50
7
举报
这个是第N+1个想要代替C的语言的语言了。
2022-04-26 13:18
7
举报
12 收藏
分享
54 评论
12 收藏
分享
返回顶部
顶部