百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
Z

zz

> 编程语言
开源

ZetZ 是一个符号验证器和转换器,用于在裸金属上运行 C 代码

1.6K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

ZetZ 是一个符号验证器和转换器,用于在裸金属上运行 C 代码

ZetZ 适用于没有动态内存的系统,其中 C 是并将继续是事实上的标准系统接口。
目标是裸机 MCU、嵌入式 Linux、WASM 以及嵌入到其他语言中。
您还可以使用它构建跨平台库,具有干净的可移植 C 标准 API。
Zetz 与其他工具兼容,不需要重写 zetz 中的所有代码才能在大型项目中发挥作用。
一个主要的创新功能是,所有代码在编译时都通过虚拟机中的符号执行进行了正式验证。

快速入门

  • Emacs: zetz-mode
  • Vim: zz.vim

它的外观

ZZ 有一些 Go 和 Rust 的美学特点,但其核心仍然是 C 语言。

cpp
using <stdio.h>::{printf}

struct Random {
    u32 num;
}

fn rng(Random *self) u32 {
    return self->num;
}

export fn main() int {
    let r = Random{
        num: 42,
    };
    
    printf("your lucky number: %u\n", r.rng());
    return 0;
}

基本思想

纯 C ABI

ZZ 发出纯 C 代码,并且永远都会这样做。这也是其存在的主要原因之一。 它总是会将 C 发送到 C 编译器,编译器再会生成二进制文件。 大多数现代语言都有自己的 ABI,与 C 不同,因此您必须使用粘合工具来与其他语言相互兼容。 如果 ZZ 以 C 形式发出,你只需要包含头文件即可。 没有堆栈解除 (C++, Rust),也没有协程 (go),因此所有代码都以纯 ANSI C 形式输出 没有对编译器功能的要求。

ZZ 与供应商提供的封闭源代码编译器搭配使用非常好,适用于一些特殊系统。例如 Arduino、ESP32、专有固件编译器,并可与现有的行业标准微内核(如 Zephyr、FreeRTOS 等)完美集成。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rust

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言