挑战C语言,新的系统编程语言Hare发布

339 阅读2分钟

开发者 Drew DeVault 公布了一门新的系统编程语言 Hare (野兔)。Hare 的开发时间接近两年半,它使用静态类型系统、手动内存管理和最小运行时,非常适合编写操作系统、系统工具、编译器以及其他低级高性能任务。
据 Drew DeVault 介绍,Hare 与 C 最相似,几乎所有用 C 语言编写的程序也可以用 Hare 编写,但 Hare 比 C 简单。
Hare 的 Hello World

use fmt;

export fnmain() 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 链接 。

以上就是本次分享的所有内容,想要了解更多欢迎前往公众号:C语言学习联盟,每日干货分享