社区编辑申请
注册/登录
新的系统编程语言 Hare 已发布,对标 C 语言
开发
开发者 Drew DeVault 公布了一门新的系统编程语言 Hare (野兔)。据 Drew DeVault 介绍,Hare 与 C 最相似,几乎所有用 C 语言编写的程序也可以用 Hare 编写,但 Hare 比 C 简单。

开发者 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 计划的更多信息。

责任编辑:未丽燕 来源: 开源中国
相关推荐

2022-04-11 11:38:44

Python代码游戏

2022-05-10 16:04:40

编程语言PythonC语言

2022-05-11 15:08:52

驱动开发系统移植

2022-04-20 20:28:40

HDF 驱动框架鸿蒙操作系统

2022-05-16 10:36:08

GitHub开源项目

2022-05-09 15:08:56

存储厂商NFV领域华为

2022-04-01 15:18:04

HarmonyHDF 驱动鸿蒙

2022-04-19 11:23:26

release3.1子系统鸿蒙

2022-05-17 15:51:32

数据中心运维能力基础设施

2022-05-16 13:37:12

Sysrv僵尸网络微软

2022-04-26 23:42:08

Windows 10微软升级

2022-04-12 11:20:11

C 语言Linux编程

2022-04-01 14:52:17

华为编程语言

2022-05-18 08:05:31

2022-05-17 16:56:33

开发工具前端

2022-05-16 10:49:28

网络协议数据

2022-04-13 09:27:39

C 语言编程

2022-05-03 22:25:57

Python浏览器语言

2022-05-06 16:31:27

人工智能自然语言生物特征识别

2022-03-31 07:52:01

Java多线程并发

同话题下的热门内容

Python 字符串总结,建议收藏!妙啊!这款 Python 数据可视化工具强的很!B站崩的那晚,连夜谋划了这场稳定性保障SRE升级之战……GitHub 上九个适合做外包项目的后台管理系统有人问,如何找到适合的Python库?十种聚类算法的完整Python操作示例直击灵魂:软件研发的第一性原理与10倍效能突发!Gitee宣布仓库开源必须人工审核,「中国Github」要无了?

编辑推荐

2017年9月编程语言排行榜:Java、C与C++三巨头还能统治排行榜多久?2017年最受欢迎的5个前端框架比较2017年11月编程语言排行榜:脚本语言怎么了?2017年3月编程语言排行榜:Swift首次进入前十最近租房有点烦!技术人如何用Python找到称心如意的“小窝”?
我收藏的内容
点赞
收藏

51CTO技术栈公众号