mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
405 字
1 分钟
[分享] 我独自实现了一门自举的编程语言——CX Language
2026-06-07

断断续续花了些时间,一个人手写实现了一门完整的编程语言,今天正式开源了。

CX Language 是什么#

CX 是一门带 C 风格语法的静态类型系统编程语言。没有用 LLVM、没有用 Yacc/Lex、没有借鉴任何编译器框架——词法分析器、递归下降解析器、字节码编译器、虚拟机、NASM 汇编后端、C 运行时,全部手写。

核心特性#

自举 — cxc.cx(2080 行 CX 代码)能编译自身,两次输出 MD5 一致

双后端 — Python VM 解释器 + x86-64 NASM 原生编译

现代类型系统 — Int / Str / Bool / Float / 数组 / 结构体 / Dict / enum / 泛型 func[T]

异常处理 — try/catch

并发 — go func() 多线程

泛型 — func[T] T add(T a, T b)

包管理 — import pkgname / cx init/install/list

绘图库 — gfx.* 基于 tkinter Canvas 的 2D 图形 API

语法糖 — var x = 5 / x++ / print(x) (自动类型转换)

工具链完整 — REPL / 测试框架 / 代码格式化 / GUI 编辑器 / VSCode 语法高亮

代码量统计#

  • 词法分析器:~110 行

  • 递归下降解析器:~600 行

  • 字节码编译器:~850 行

  • 虚拟机:~650 行

  • NASM 汇编后端:~900 行

  • C 运行时:~280 行

  • 自举编译器 cxc.cx:~2100 行(用 CX 自身编写)

  • 工具链(REPL/包管理器/GUI 等):~600 行

  • 总计:约 8000 行 Python + 2100 行 CX

快速体验#

git clone https://gitee.com/cxlang-offcial/cx-language.git
cd cx-language
python cx.py repl # 交互式 REPL
python cx.py run test_all.cx # 运行测试
python cx.py gui # GUI 编辑器

需要 Python 3.8+,无需其他依赖。

链接#

欢迎 star、issue、PR。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

[分享] 我独自实现了一门自举的编程语言——CX Language
https://fanhua.qddtips.top/posts/cx-language/
作者
しらゆき さき
发布于
2026-06-07
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录