纯 zhlang 自举 · 直接生成机器码

用中文写程序,
直接得到机器码。

Python 的写法 · Go 的并发 · 原生二进制。编译器自己就是 zhlang 程序——一个文件,三端目标,不需要任何外部工具链。

v2.40当前版本
3原生目标
0外部工具链
80%产物更小
并发.zh
// 并发:协程 + 通道
函数 生产者(ch)
    循环 i 从 1 到 3
        发送(ch, i * 100)
    关闭(ch)

常量 ch = 通道()
启动 生产者(ch)
当 真
    常量 v = 接收(ch)
    如果 v == 假
        跳出
    打印("收到", v)

收到 100
收到 200
收到 300

自举不动点zhlang 编译器stage-1 · 由上一版生成→zhlang 编译器stage-2 · 由自身生成stage1 == stage2逐字节相同

语言

为原生程序而生的中文语言

不是语法玩具:并发、网络、TLS、面向对象、调试器都在自举编译器里,三端可用(HTTPS 在 Windows 上走系统 TLS)。

01

中文母语,英文等价

关键字、内置、标准库全部有中文名;英文别名与中文关键字等价,可在同一文件里混写。

02

原生协程与通道

启动 / 通道 / 选择 / 互斥锁。三端后端都直接生成协程调度,不依赖线程库。

03

纯 zhlang 网络栈

TCP / HTTP / HTTPS。Linux 上 TLS 1.3 由 zhlang 实现:证书链、P-521、名称约束、CRL 吊销与 OCSP 钉接;Windows 走系统 TLS(WinHTTP),撤销检查由系统负责。

04

类、接口与闭包

结构体、类、继承、初始化方法、命名构造、Go 式接口、一等函数与闭包。

05

可调试的编译期断点

@断点调试(等级, 内容) + -d:命中处停在终端,支持继续、退出、栈与帮助。

06

自举工具链

编译器、文档生成器、语法高亮规则都用 zhlang 写;/** … */ 生成响应式 HTML 文档。

速览

真实可编译的 zhlang 代码

下面每一段都由官网下载的同一个自举编译器编译运行。

基础

变量 · 函数 · 递归
函数 阶乘(n)
    如果 n <= 1
        返回 1
    返回 n * 阶乘(n - 1)

打印(阶乘(5))          // 120

并发

协程 · 通道
函数 生产(ch)
    循环 i 从 1 到 3
        发送(ch, i * 100)
    关闭(ch)

常量 ch = 通道()
启动 生产(ch)
当 真
    常量 v = 接收(ch)
    如果 v == 假
        跳出
    打印(v)

面向对象

类 · 初始化 · 方法
类 计数器
    属性 n = 0
    函数 加(k)
        本.n = 本.n + k

常量 c = 计数器()
c.加(10)
打印(c.n)             // 10

网络

HTTPS · 纯 zhlang TLS
常量 r = 网页请求("https://example.com")
打印(r["状态"], 长度(r["体"]))

调试

@断点调试 · -d 运行
函数 繁忙(n)
    @断点调试(信息, "进入")
    返回 n * n

$ ./编译 程序.zh -d
断点 程序.zh:2 繁忙 [信息] 进入
调试 程序.zh:2> c

文档

文档注释 · HTML 手册
/** @说明 两数相加
    @参数 a 第一个数
    @参数 b 第二个数
    @返回 和 */
函数 加(a, b)
    返回 a + b

目标

一个编译器,三端原生

每个宿主编译器都内建三端交叉目标;用 --target 指定,不需要交叉工具链。

ELF

Linux x86_64

静态 ELF,直接系统调用;产物零运行时依赖。

ARM64

Linux aarch64

静态 ELF,目标机无需任何运行库;qemu 与真机均可运行。

PE64

Windows x86_64

PE64 可执行文件,直接调用 Win32 API;中文路径与参数全链路可用。

./编译 程序.zh -o 程序-arm --target aarch64-linux-gnu
./编译 程序.zh -o 程序.exe --target x86_64-windows-gnu

上手

三步开始

不需要安装 gcc、不需要包管理器、没有任何外部工具链。

1

下载

取对应平台的单文件编译器,改名为 编译(Windows 为 编译.exe)。

chmod +x 编译
2

编译

源文件是 UTF-8 的 .zh;默认目标 = 当前宿主。

./编译 你好.zh
3

运行

产物是普通原生可执行文件,零运行时依赖。

./你好

官方唯一发行版

下载纯 zhlang 自举编译器

单文件 · 三端交叉 · 零外部工具链 · v2.40