点击上方“小麦大叔”,选择“置顶/星标公众号”
大家好,我是小麦。
C语言大家可能用过或有所耳闻,它从1972年发明到现在,已经有50岁的高龄了。
这期间有很多的编程语言问世,但是C语言仍有自己的一席之地。
最近,开发者 Drew DeVault 公布了一门新的系统编程语言:
Hare (野兔)
Hare 的开发时间接近两年半,它使用静态类型系统、手动内存管理和最小运行时,非常适合编写操作系统、系统工具、编译器以及其他低级高性能任务。
据 Drew DeVault 介绍,Hare 与 C 最相似,几乎所有用 C 语言编写的程序也可以用 Hare 编写,但 Hare 比 C 简单。
use fmt;
export fnmain() void = {
const greetings = [
"你好,世界",
"Hello, world!",
];
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 的 OpenGL 绑定正在进行中,目前可用于几个小游戏,比如俄罗斯方块:
使用 Hare 编写的简单光线追踪器:
Hare 标准库包含以下标准组件,该库为许多用例提供支持,而无需任何依赖关系。
该标准库让 Hare 脱离了 POSIX 和 libc 的遗留问题,Hare 程序默认不与 libc 链接 。
目前 Hare 正在保守开发中,标准库最大的任务是完成密码学实现,首要目标是支持 TLS (安全传输层协议)1.2 和 TLS 1.3。一旦达到 1.0 版本,Hare 将完成语言规范,冻结语言设计,且只对标准库进行向后兼容的更改。
此外,目前 Hare 仅支持三种架构:x86_64、aarch64 和 riscv64,未来将逐步添加 32 位平台和其他架构的支持。操作系统方面,目前 Hare 只支持 Linux 和 FreeBSD,计划在未来做更多的移植。
我们无意支持非自由平台,但由于语言是标准化的,如果需要,第三方实现或分支可以轻松开发 Windows 或 macOS 支持。
怎么样,大家对这个编程语言怎么看呢?
来源|罗奇奇/OSC开源社区(ID:oschina2013)
版权声明:本文来源网络,版权归原作者所有。版权问题,请联系删除。
往期推荐