极简系统编程语言Nibble:仅3000行C代码实现,零依赖探索LLVM
Nibble 是一款类似 C 的系统编程语言,其核心编译器仅由 3000 行 C 代码编写,旨在展示一种无需外部依赖或堆分配的 LLVM IR 生成方法。该语言支持递归、指针、结构体、GLSL 风格运算符及 C 语言互操作,并附带了软件渲染...
Nibble 是一款类似 C 的系统编程语言,其核心编译器仅由 3000 行 C 代码编写,旨在展示一种无需外部依赖或堆分配的 LLVM IR 生成方法。该语言支持递归、指针、结构体、GLSL 风格运算符及 C 语言互操作,并附带了软件渲染...
Hacker News 上热议的 Blaise 项目展示了一款现代化的 Object Pascal 编译器,其核心目标是实现“零遗留”代码和自托管能力。不同于传统的编译器架构,Blaise 选择 QBE(一种极简的编译器后端)作为目标。开发...

ECS / OSS / CDN / 云数据库一站采购,常用云资源集中选配;新用户与续费均有专场优惠,适合个人开发者与小团队长期使用。
C++26 即将引入的 `std::define_static_array` 旨在简化编译期静态数组的生成,这比传统的“constexpr 两步法”更加简洁且高效。然而,该特性基于 `std::meta::reflect_constant`...
大众普遍认为 WebAssembly (Wasm) 是基于栈的虚拟机,类似于 JVM。然而,本文作者通过深入分析指令集发现,Wasm 与传统的栈机器存在根本差异。传统的栈机器通常拥有 dup、swap 等指令来直接操作栈内数据以实现复用,而...
这篇文章详细记录了作者如何将一个极其简单、基于AST遍历的动态语言解释器Zef,通过21个具体的优化步骤,在完全不使用JIT编译器的情况下,将性能提升了16倍。文章涵盖了值表示法改进、符号化、内联缓存、对象模型重塑以及监视点等底层技术细节。...
DeiMOS 是一款针对经典 8 位处理器 MOS 6502 的“超优化器”工具。与传统依赖规则的编译器不同,它通过穷举搜索整个指令空间,致力于寻找理论上最短或最快的机器码序列。该项目采用了多种高级优化技术,包括借鉴 GPU 概念的“War...
这篇文章详细记录了作者使用Rust nightly版本新增的`become`关键字,为Uxn CPU构建尾调用解释器的全过程。测试结果显示,得益于将状态存储在寄存器参数中并在指令末尾进行分发,该实现在M1芯片(ARM64)上的性能不仅优于原...
本文深入探讨了编译器构建中的核心算法——Pratt解析。作者通过抽象语法树(AST)的几何形态,将枯燥的优先级与结合性问题转化为直观的“左倾”与“右倾”树结构变化。文章指出,Pratt解析的精髓在于通过递归回溯,在遇到优先级转换时动态调整树...
该项目开发了基于MLIR的LAPIS编译器框架,旨在解决多样化硬件架构(特别是GPU)上的性能可移植性难题。其核心创新在于引入了Kokkos方言,能够将高级语言代码优雅地降级转换至不同底层架构,并支持科学机器学习(SciML)模型的高效集成...
Zig开发团队合并了一个包含3万行代码的大型PR,对编译器内部的类型解析逻辑进行了彻底重写。新设计采用了更“懒惰”的分析策略,仅在类型实际初始化时才分析其字段,这不仅优化了命名空间的使用模式,还大幅提升了增量编译的速度,有效消除了“过度分析...