Drew DeWalt 介紹了 Hare 系統編程語言

Sway 使用者環境、Aerc 電子郵件用戶端和 SourceHut 協作開發平台的作者 Drew DeVault 發布了 Hare 程式語言,他和他的團隊在過去兩年半的時間裡一直在研究這種語言。 Hare 是一種系統程式語言,接近 C 語言,但比 C 語言更簡單。 Hare 的關鍵設計原則包括專注於簡化和完全信任程式設計師的行為(嚴格按照指定的方式執行,沒有任何主動或隱式的行為),並提供輔助工具來識別典型的錯誤和問題。

編譯器和工具鏈原始碼採用 GPLv3 許可,標準函式庫程式碼採用 MPL(Mozilla 公共授權)授權。首個公開版本宣布支援作業系統。 Linux 以及基於 x86_64、aarch64 和 riscv64 平台的 FreeBSD,以及用於裸機運行的獨立實作。計畫中還包括支援 NetBSD、OpenBSD、Illumos、Haiku 和 Plan 9 作業系統以及 ppc64le、i686 和 arm32 平台。

該語言使用手動記憶體管理和靜態類型系統,其中每個變數必須明確分配特定類型。附加了最小運行時間以運行該應用程式。該語言針對低階任務進行了最佳化,例如開發作業系統、編譯器、網頁應用程式和系統實用程序,這些任務需要最高效能和完全控制執行。

為開發人員準備了標準函數庫,提供對作業系統基本介面、典型演算法以及協定和格式的實現的存取。本函式庫涵蓋輸入/輸出、檔案處理、正規表示式、加密、網路、時間和日期操作、存取常見 Unix 原語(如 poll、fnmatch 和 glob)、解析和類型檢查等領域。用於存取 OpenGL、SDL2 和 libui 功能的綁定是單獨提供的。

以 Hare 語言編寫的專案範例包括 Helios 微核心、Himitsu 密碼管理器、光線追蹤系統、box 加密程式、btqd 位元流守護程式、scheduled(類似 cron 的系統)、toothbrush(客戶端和 服務器 (針對 finger 協定)。未來的計劃包括穩定語言規範和標準庫,實現對缺失平台和架構的支持,以及添加庫函數以支援 TLS 1.2 和 1.3。

Hare 語言的範例程式碼:use crypto::sha256;使用編碼::hex;使用 fmt;使用雜湊;使用io;使用作業系統;匯出 fn main() void = { const hash = sha256::sha256(); constio:: os::open("main.ha")!; ;讓總和:[sha256 :: SIZE] u8 = [0 ...];哈希::sum(&hash,sum);十六進位::編碼(os::stdout,sum)! ; fmt::println()! const Greetings = [ "你好,世界!", "Hola Mundo!", "準備要戰鬥!", "你好,世界!", "歡迎來到這個世界!", ]; for (let i = 0z; i < len(greetings); i += 1) { fmt::println(greetings[i])!; }, x42; x)!; fmt::printfln("*x: {}", *x)!;釋放(x); const 檔 = os::open(os::args[1])!;延遲 io::close(檔)! ;讓緩衝區:*[65535] u8 = alloc([0 ...]);延遲釋放(緩衝區); const n = io::read(文件,緩衝區)!作為尺寸; io::write(os::stdout,緩衝區[..n])! ; }; fn 排序(items:[]int)void = {...}; @test fn sort() void = { let items = [5, 4, 3, 2, 1];排序(項目); for (let i = 1z; i < len(items); i += 列表1]; }; };

來源: opennet.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster