断断续续花了些时间,一个人手写实现了一门完整的编程语言,今天正式开源了。
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.gitcd cx-languagepython cx.py repl # 交互式 REPLpython cx.py run test_all.cx # 运行测试python cx.py gui # GUI 编辑器需要 Python 3.8+,无需其他依赖。
链接
欢迎 star、issue、PR。
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时





