文 | 羅奇奇
出品 | OSC開源社區(ID:開發者Drew 公布了一門新的系統編程語言 Hare (野兔)。Hare 的開發時間接近兩年半,它使用靜態類型系統、手動內存管理和最小運行時,非常適合編寫操作系統、系統工具、編譯器以及其他低級高性能任務。
據Drew 介紹,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 編程語言的程序,比如Hare 的 綁定正在進行中,目前可用于幾個小游戲,比如俄羅斯方塊:
使用 Hare 編寫的簡單光線追蹤器:
Hare 標準庫包含以下標準組件,該庫為許多用例提供支持,而無需任何依賴關系。該標準庫讓 Hare 脫離了 POSIX 和 libc 的遺留問題,Hare 程序默認不與 libc 鏈接 。Hare 未來目前 Hare 正在保守開發中,標準庫最大的任務是完成密碼學實現,首要目標是支持 TLS (安全傳輸層協議)1.2 和 TLS 1.3。一旦達到 1.0 版本,Hare 將完成語言規范,凍結語言設計,且只對標準庫進行向后兼容的更改。此外,目前 Hare僅支持三種架構:、 和c語言小游戲程序,未來將逐步添加 32 位平臺和其他架構的支持。操作系統方面,目前 Hare 只支持 Linux 和 ,計劃在未來做更多的移植。
我們無意支持非自由平臺,但由于語言是標準化的,如果需要c語言小游戲程序,第三方實現或分支可以輕松開發 或 macOS 支持。
大家可以在路線圖上查看有關 Hare 計劃的更多信息:Hare 首頁、下載等相關鏈接可點擊文末閱讀原文查看。