待补充
NerdLang/nerd
3/5
🧩 软硬件结合
已发布
项目简介
🔱 Javascript's God Mode. No VM. No Bytecode. No GC. Just native binaries.
Nerd 是一个将 JavaScript 和 NerdLang 代码直接编译为原生二进制可执行文件的开源编译器,无需虚拟机、无需字节码、无需打包工具,也没有垃圾回收器。它的核心目标是把 JavaScript 从解释型语言转变为真正的系统级编程语言,让开发者能用熟悉的 JS 语法编写高性能、跨平台的原生应用。
标签
项目特点
**直接编译为原生二进制**:无需 Node.js、JVM 或任何运行时,编译产物就是可直接运行的机器码。
**无垃圾回收器**:采用手动内存管理,适合对性能要求苛刻的系统级开发。
**兼容 JavaScript 语法**:支持大部分 ES6+ 语法,降低学习成本。
**跨平台支持**:编译产物可在 Windows、macOS、Linux 等主流操作系统上运行。
**内置 NerdLang 扩展**:提供额外的系统编程特性,如指针操作、内联汇编等。
**零依赖构建**:不需要 npm、webpack 等工具链,单文件即可完成编译。
技术规格
| 编译器语言 | C++ |
|---|---|
| 输入语言 | JavaScript (ES6+) / NerdLang |
| 输出格式 | 原生可执行文件 (ELF/PE/Mach-O) |
| 后端 | LLVM |
| 内存管理 | 手动 (无 GC) |
| 支持平台 | Windows, macOS, Linux |
| 架构支持 | x86_64, ARM64 |
| 编译模式 | AOT (Ahead-of-Time) |
| 标准库 | 内置系统级 API (文件、网络、线程) |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| nerd 可执行文件 | 1 | — | 编译后的主程序 |
| src/ 目录 | 1 | — | C++ 编译器源码 |
| lib/ 目录 | 1 | — | 内置系统库 |
| examples/ 目录 | 1 | — | 示例代码 |
| tests/ 目录 | 1 | — | 测试用例 |
| README.md | 1 | — | 项目说明 |
能力画像
**记忆与知识检索**:2/5 — 项目本身不涉及知识库,但需要理解编译原理和系统编程知识。
**动手与操作**:4/5 — 需要手动编译项目、编写代码并调试原生二进制。
**编程与算法**:5/5 — 核心是编译器开发,涉及词法分析、语法分析、代码生成等复杂算法。
**设计与建模**:3/5 — 需要设计语言特性和内存管理模型。
**实验与调试**:4/5 — 编译错误、段错误等需要深入调试工具(如 GDB、LLDB)。
**协作与分享**:2/5 — 目前社区较小,但可通过 GitHub Issues 和 PR 协作。
**学习与研究**:5/5 — 适合深入学习编译器设计、LLVM 后端、系统编程。
**系统集成**:4/5 — 需要将 Nerd 编译产物与操作系统 API、第三方库集成。
所需技能
JavaScript / ES6+ 语法基础
C++ 编程(用于修改编译器源码)
编译原理基础(词法分析、语法分析、中间表示)
LLVM 工具链使用
系统编程概念(内存管理、进程、线程)
命令行操作(编译、链接、调试)
Git 版本控制
适用场景
开发高性能命令行工具或系统级应用
将现有 JavaScript 项目迁移为原生可执行文件
学习编译器设计与 LLVM 后端开发
构建无依赖、可独立分发的桌面应用
嵌入式或资源受限环境下的脚本编译
教学演示:从源码到机器码的完整编译流程