“`markdown
国产编程语言 MoonBit 崛起:发布 LLVM 后端,入驻世界一流高校课程体系
摘要: 在全球人工智能竞赛的背景下,国产编程语言 MoonBit 以其卓越的性能和易用性,不仅发布了 LLVM 后端编译器,性能超越主流语言,更成功进入世界顶尖高校的课程体系,标志着国产基础软件自主化进程迈出重要一步。
北京 – 在人工智能驱动全球技术竞赛的当下,国产基础软件的自主化进程正迈向深水区。作为这一进程中的代表性力量,MoonBit 月兔以 “快速、简单、可拓展” 为核心特质,逐步构建起跨越学术与产业的技术生态。
自2022年诞生以来,MoonBit通过多后端架构设计,在编译速度、运行效率和代码体积等关键指标上实现对传统编程语言的超越,覆盖从嵌入式设备到云端服务的全栈开发场景,成为极少数能在工业级性能与教学实践价值间取得平衡的编程语言及开发者工具链。
MoonBit 团队近期双线告捷:LLVM 后端编译器发布,初步测试显示其性能超过主流语言水平,实验性的支持原生后端调试功能;几乎同一时间,该语言被纳入世界顶尖高校的编程语言课程。在此过程中,MoonBit 月兔逐渐找到了自己的位置—— “做引领者而非追随者,和全球开发者并肩,重新定义编程语言的未来规则。
MoonBit 的优势
LLVM 后端发布:场景化分工,双轨编译架构实现能力跃迁
MoonBit 的核心目标是通过 性能突破 与 开发者体验革新,解决现有编程语言在关键场景(如高并发、资源受限环境)中的效率瓶颈。MoonBit认识到若一门新语言无法在核心性能与易用性上创造代际优势,开发者便不会承认其存在价值。
MoonBit同步完善 C 后端并推出 LLVM 后端,分别针对嵌入式设备优化与跨平台高性能场景,通过统一工具链实现从硬件层到服务端的全场景覆盖。
- 性能维度: LLVM 后端复用与 Rust/Swift 相同的工业级优化管线(如自动向量化、LTO),为 MoonBit 提供与现代语言同级的优化潜力。
- 体验维度: 原生集成 DWARF 调试信息,支持 GDB/LLDB 源码级调试,并计划实现运行时数据结构可视化。
- 生态扩展: 基于 LLVM 对 RISC-V 向量扩展等新硬件的原生支持,MoonBit 可快速适配前沿架构。
性能实测:LLVM 后端的工业级表现
LLVM 后端的 MoonBit 在性能方面也有着不俗的成绩。比如使用经典的 FFT 算法 benchmark,让 MoonBit 和 Java 运行同样的 Cooley-Tukey 算法。MoonBit 相比 Java 有8倍以上的性能提升,比将 Java 静态编译的编译器 GraalVM 也有3倍以上的性能提升。
下面是 MoonBit 与 Java 实现的 FFT 算法的性能对比。FFT(快速傅里叶变换)是一个计算序列的离散傅里叶变换的高效算法,在信号处理、压缩等许多领域有重要应用。FFT 算法涉及大量数值运算和数组操作,可以很好地体现语言的基础性能:
| FFT 任务运行中位数时间(x86_64 Linux, Intel Core i7-12700) | 平台时间 (ms) |
| ———————————————————– | ————- |
| MoonBit (LLVM 18) | 19.08 |
| Java (GraalVM @ Java 23) | 65.21 |
| Java (OpenJDK 23) | 144.1 |
虽然 LLVM 后端涉及到更多的底层调整和优化,工具链还尚未能完全发挥 LLVM 所带来的性能优势。团队将会在未来的更新中继续优化 LLVM 后端生成的代码质量,进一步提升它的性能。
原生后端调试支持
在面向虚拟机的 JS 后端,借助 Chrome Debugger,MoonBit真正实现了调试体验的开箱即用。然而,对于面向原生平台的 C 后端,调试体验却并不完全尽如人意。
在 C 后端中,用户可以调试编译后生成的 C 文件,但是 C 文件与输出的原始文件的映射信息在这一过程中依然是缺少的。在 LLVM 的帮助下,当前MoonBit编译器已具备向最终二进制文件注入DWARF格式符号表的能力。MoonBit 现在可以向输出二进制文件中插入调试信息,将二进制文件中的指令直接对应到源文件和行号列号。这一功能将很大程度上改善输出的文件与源代码映射信息缺失的问题。
基于该调试信息生成机制,MoonBit工具链支持开发者使用标准调试工具(如LLDB)对编译产物进行源码级调试。具体而言,调试器能够自动解析符号映射关系,当执行流到达预设的源码位置时准确触发断点中断。比如,可以在 lldb 调试器中插入断点,以将程序在指定的位置暂停。
虽然目前 MoonBit LLVM 后端对调试信息支持仍处于初步阶段,但已经对开发调试有了一定的帮助。团队后续会加入对调试器更好的支持,比如在调试器中展示局部变量和数据结构当前的值,以及更好的 name mangling 等。
未来展望
LLVM 的引入带来最最显著的改进是,用户将来不需要在系统中安装完整的 C 编译器也能生成原生程序。虽然仍然需要链接器,但链接器相比 C 编译器来说体积更小,分发起来也更加方便。
有了 LLVM 处理底层的编译工作,团队可以将更多精力投入在在运行时系统的创新上,比如利用LLVM 对异常处理的完整支持,将错误处理函数优化为性能更好的 try-catch 实现;LLVM 对追踪式垃圾收集的原生支持能够考虑用追踪式 GC 来替代现有的 Perceus 和引用计数方案。
进入北大研究生课堂,替代 OCaml 完成教学升级
在函数式编程教学领域持续深耕十余年的北京大学计算机系,近日对其研究生课程《编程语言的设计原理》进行了重要升级。
结论
MoonBit 的成功不仅在于技术上的突破,更在于其对开发者体验的重视和对教育领域的贡献。随着 LLVM 后端的发布和在顶尖高校的普及,MoonBit 有望成为国产编程语言的领跑者,为中国软件产业的自主创新注入新的活力。
参考文献:
- 机器之心. (2024). 国产编程语言的进击:MoonBit 发布 LLVM 后端,同步入驻世界一流高校课程体系. Retrieved from https://www.jiqizhixin.com/articles/2024-03-10-12
“`
Views: 0