
多年以前写游戏引擎的时候我在里面做过一门脚本语言https://blog.csdn.net/dlite/article/details/20451219。最近把它从引擎里拆出来整理成一个独立项目放到了GitHub上https://github.com/dliting/nlang。NLang 是一个完整的语言项目由四个部分组成语言静态类型语法风格接近 C# 和 Java编译器ncc完整的编译器前端把源码编译成自定义字节码虚拟机nvm执行字节码的运行时另带一个字节码反汇编器ndisasmIDEnide基于 Qt5 的桌面开发环境内置一份离线文档站跟着入门章节就能上手语言本身该有的都有。Java 或 Python 里的核心特性它基本都覆盖类与继承、接口、枚举、泛型容器List、Dict、异常处理try/catch/finally、函数引用Func、foreach、switch、字符串插值。标准库目前有 io、math、fs 三个命名空间和一组字符串方法。一段示例把列表里的数加起来import io; int main() { Listint xs [3, 1, 4, 1, 5]; int total 0; foreach (int x in xs) { total x; } io.print(total); // 14 return 0; }实现以前是C11, 现在升级到了 C17词法和语法分析基于 Flex/Bison语义分析、代码生成和虚拟机手写的通过AI工具整理了项目。今天发了 v0.1.0Windows 安装包和免安装 zip 都挂在 GitHub Releases 上。开源主要动机是教学和研究用途可以用于研究各种语言特性的实现机制也当作个人项目的一份存档。MIT 协议感兴趣的朋友可以看看仓库https://github.com/dliting/nlang下载https://github.com/dliting/nlang/releases后续 roadmap 上还有 lambda/闭包、用户自定义泛型、LSP、Linux 移植。不着急慢慢来。