原生编译
源码生成 C,再由目标平台工具链产出本地二进制。
编译到本地,也能嵌入应用。
一种以 C 为后端的编程语言。生成本地二进制,或作为运行时接入现有 C/C++ 工程。
Hello, xlang!
编译、类型系统、异步、标准库与跨平台支持。
源码生成 C,再由目标平台工具链产出本地二进制。
通过稳定的 C API 接入现有工程,也可以作为脚本运行时使用。
显式类型、auto 推断与动态 var 可以按场景组合。
内置 async / await、future、channel 与任务编排。
网络、加密、模板、日志与文本处理随语言一并提供。
沿用成熟的 C 工具链,覆盖桌面、移动与嵌入式环境。
xlang 以 C 为编译后端——凡是 C 编译器存在的地方,xlang 就能运行。从云服务器到嵌入式板卡,从 x86 到 RISC-V,无需修改一行代码。
不需要 JVM、不需要 Python 运行时、不需要 Node.js。编译为原生机器码,目标机零环境配置。
C 后端天然支持交叉编译工具链。一次编写,使用目标平台的 C 编译器即可生成对应二进制。
TCC 后端体积小、启动快,适合资源受限的嵌入式 Linux 板卡和 IoT 设备。
原生支持鸿蒙 HarmonyOS 与龙芯 LoongArch 架构,满足信创和国产化替代需求。
C 风格类型前置 + end 块结构,编译期类型检查,内嵌 TCC 即时执行。
// 你的第一个 xlang 程序 func main(...) as int print("Hello, xlang!") return 0 end
string name = "xlang" print(f"Hello {name}!") time t = #2026-07-06 12:30:00# print(time.formatPattern(t, "yyyy-mm-dd hh:mm"))
class Animal string name = "" create(string name) self.name = name end virtual func speak() as string return "..." end end class Dog extends Animal create(string name) base(name) end override func speak() as string return self.name + ": Woof!" end end
async func addAsync(int a, int b) as int return a + b end future<int> a = addAsync(1, 2) future<int> b = addAsync(3, 4) array<int> all = await task.all([a, b]) print(all)
func numbers(int count) as generator<int> int i = 0 while i < count i += 1 yield i end end func main(...) as int for value in numbers(5) print(value) end return 0 end
class Packet derive json derive copy int id = 0 string name = "" end auto p = Packet() p.id = 42 p.name = "hello" string text = json.stringify(p) print(text) auto p2 = json.parse::<Packet>(text) print(p2.name)
既有脚本语言的开发效率,又有编译型语言的性能保障。
源码转译为 C,通过内嵌 TCC 在内存中编译执行,无需生成中间文件。兼具脚本语言的即时执行体验和编译型语言的性能。
基础类型 int8-64/uint8-64/float32-64、动态类型 var、类型值 type、auto 推断、泛型容器 array/list/set/dict、C ABI 精确类型。is/as 运行时类型判断与向下转换。
原生 async/await 语法,future<T> 异步值。task.all/race 组合编排,task.cancel 取消控制,完整的取消传播和失败处理语义。
yield 惰性求值,generator<T> 类型化生成器。channel<T> 线程间通信,send/recvInto 阻塞与非阻塞接收。
class 继承与 base 调用、virtual/override/final vtable 派发、public/private 访问控制、static 成员、get/let 属性(含多维重载)、运算符协议重载、__iter__ 迭代协议、derive 自动派生。class 默认引用语义,byval/byref/out 参数传递,显式 copy/clone 控制副本。
泛型函数与泛型 class,显式实例化语法 ::<T>。约束语法 <T is Constraint>,多个约束用 and 组合。内置能力约束与 class 继承约束。
一行 derive 即可自动生成 copy/clone/json/xson/value/hash/equals 协议实现。配合 @json/@persist 字段级注解控制序列化行为。
extern 声明 C 函数,export 导出给 C,.xl 与 .c 混合编译。native-backed class 对接 C opaque handle,C ABI 类型跨平台精确对齐,ABI 元数据自动生成。
覆盖 math / string / time / file / dir / path / json / crypto / http / net / tcp / udp / template / regex 等完整领域。包含完整 HTTP 服务器(TLS/SNI/路由/静态文件/流式 body)。
thread 线程封装、mutex 互斥锁、sem 信号量、cond 条件变量、rwlock 读写锁。配合 async/channel 构建完整并发模型。
xl.dll 轻量运行版与 xlc.dll 编译版,76 个公开 C API(xl.h 43 + xlc.h 33),零外部依赖。支持 C 宿主创建语言上下文、运行脚本、注册原生函数、编译到 exe。
try/catch/finally 结构化错误处理,throw 抛出异常,assert 断言语句。#doc ... #end 文档注释块支持 desc/param/return/example 字段。
从源码到执行,四阶段编译管线,每阶段可独立调试。
Flex 词法生成器 — Token 流,支持 UTF-8 标识符、f-string、时间字面量
Lemon LALR 解析器 — AST 构建
libtcc 内存编译 → 即时执行
| 产物 | 说明 |
|---|---|
xl.exe | 编译器/运行器(lex/parse/check/ir/cgen/abi/run/build/impdef) |
xl.dll | 轻量嵌入式运行 DLL(43 个公开 API,零外部依赖) |
xlc.dll | 带编译能力的嵌入式 DLL(内嵌完整 TCC 资源) |
xl.def / xlc.def | DLL 导出定义文件 |
覆盖核心、容器、数据、网络、并发、安全等完整领域。默认注入环境,无需 import。115 个常量。
print / println / write / writeln / range
5 常量 + 34 函数:sqrt/sin/cos/floor/log 等
44 函数:split/join/replace/trim 等(UTF-8)
67 函数:now/format/parse/addDays 等
31 函数:readText/writeText/copy 等(UTF-8 路径)
23 函数:list/create/delete/walk 等
19 函数:join/normalize/exists 等
json 7 / xson 8 函数:stringify/parse/read/write
54 函数:SHA/HMAC/AES-GCM/Ed25519 等
客户端 + 完整服务器(TLS/SNI/路由)
网络编程:connect/listen/bind
base64/hex/percent 编解码
字符集探测与转换
u32/u64 哈希算法
range/seed/string
find / isMatch
16 函数:trace/info/warn/error 等
compile / render / renderFile
exec / pipeline / start
URL 解析与查询字符串
xid 唯一标识生成
编译、运行、构建,三步上手 xlang。
# 进入 demo6 目录 cd demo6 # 一键构建 xl.exe + xl.dll + xlc.dll build.bat
# 直接运行脚本(TCC 内存编译,不生成临时文件) release\xl.exe run examples\hello.xl # 传递命令行参数 release\xl.exe run examples\args.xl -- arg1 arg2 # 构建 native exe release\xl.exe build examples\hello.xl -o hello.exe hello.exe # 混合编译 .xl 与 .c release\xl.exe build main.xl helper.c -o app.exe
# 查看每个编译阶段 release\xl.exe lex test.xl # Token 流 release\xl.exe parse test.xl # AST 树 release\xl.exe check test.xl # 语义检查 release\xl.exe ir test.xl # 中间 IR release\xl.exe cgen test.xl # 生成的 C 代码 release\xl.exe abi test.xl # ABI 导出符号表 # 一次性输出全部阶段产物 release\xl.exe cgen test.xl --dump-dir output/
# 主回归测试 test.bat # 功能范例测试 test_feature_suite.bat # 冒烟测试 test_smoke.bat # RC0 工程守门 rc0_guard.bat
星月站群生态——与 xlang 协同的基础设施与工具家族。