踢馆C语言!新的系统编程语言问世!
开发者技术前线
共 1898字,需浏览 4分钟
·
2022-05-04 00:11
点击“开发者技术前线”,选择“星标”
让一部分开发者看到未来
出品 | OSC开源社区(ID:oschina2013开发者 Drew DeVault 公布了一门新的系统编程语言 Hare (野兔)。Hare 的开发时间接近两年半,它使用静态类型系统、手动内存管理和最小运行时,非常适合编写操作系统、系统工具、编译器以及其他低级高性能任务。据 Drew DeVault 介绍,Hare 与 C 最相似,几乎所有用 C 语言编写的程序也可以用 Hare 编写,但 Hare 比 C 简单。Hare 的 Hello World
use fmt;Hare 计算自己的 SHA-256 哈希:
export fnmain() void = {
const greetings = [
"Hello, world!",
"¡Hola Mundo!",
"Γειά σου Κόσμε!",
"Привет, мир!",
"こんにちは世界!",
];
for (let i = 0z; i < len(greetings); i += 1) {
fmt::println(greetings[i])!;
};
};
use crypto::sha256;Hare 基于 qbe 编译器后端,在占用空间小的情况下提供了良好的性能。
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 现状
目前已经有许多基于 Hare 编程语言的程序,比如- Himitsu :密匙管理和密码存储工具。它将密匙存储为键/值对,且允许存储附加信息,例如用户名、主机和协议。
- Helios :x86_64 系统的微内核。
- box :简单的 CLI 加密工具
- btqd :bittorrent 守护进程
- hare-libui :简单 GUI 的 libui 绑定
- 密码学套件
- 网络支持
- 全面的日期/时间操作
- I/O 和文件系统抽象
- Unix 原语,如 poll、fnmatch 和 glob
- POSIX 扩展正则表达式
- Hare 解析器和类型检查器
Hare 未来
目前 Hare 正在保守开发中,标准库最大的任务是完成密码学实现,首要目标是支持 TLS (安全传输层协议)1.2 和 TLS 1.3。一旦达到 1.0 版本,Hare 将完成语言规范,冻结语言设计,且只对标准库进行向后兼容的更改。此外,目前 Hare 仅支持三种架构:x86_64、aarch64 和 riscv64,未来将逐步添加 32 位平台和其他架构的支持。操作系统方面,目前 Hare 只支持 Linux 和 FreeBSD,计划在未来做更多的移植。我们无意支持非自由平台,但由于语言是标准化的,如果需要,第三方实现或分支可以轻松开发 Windows 或 macOS 支持。
— 完 —
最近写了一套 6000 页的 Java 学习手册,以及珍藏四本 Java 人必读4大神器,分享到知乎已经 3 万赞了!
整个资料包内容专注 Java技术,包括 Spring、Spring Boot/Cloud、Dubbo、JVM、集合、多线程、JPA、MyBatis、MySQL、大数据、Nginx、Git、Docker、GitHub、Servlet、JavaWeb、IDEA、Redis、算法、面试题等相关内容。图文并茂,附有源码,还送一波电子书。内容包括但不限于:
每篇文章图文并茂,附有源码。还有电子书合集
如果你想获得完整PDF可以通过以下方式获得:关注回复“大厂面试”
扫码关注回复“大厂面试”
评论
Dale系统编程语言
Dale是一个系统编程语言,使用S-表达式作为语法,支持语义宏。基本语言类似C,提供如下额外特性:局部类型推导重载功能;匿名功能;参考参数;初始化程序和析构函数;变体命名空间;模块;conceptsc
Dale系统编程语言
0
Loci系统编程语言
Loci是一个多范式的系统编程语言,使用更直观的方式描述,跟C++很类似。Loci并不是为了弥补C++的某些不足而推出,同时引入全新范式和编程风格,这些对开发者来说非常方便。此外在性能上Loci也没有
Loci系统编程语言
0