标签
一篇探讨联合类型及其特例——可选类型(T|Nothing)的博客文章,以及作者在 Copper(一种极简的底层“更好的 C”语言)中实现它们的实验,包括设计上的限制,以及为什么完整的联合类型被证明过于复杂。
Futhark 团队总结了其类型检查器中别名传播(alias propagation)相关开放问题的最终解决方案,重点介绍了利用参数性(parametricity)推断更精确的 freshness 类型,以改善高阶函数与别名交互时的人体工学。
Rust 设计者 Niko Matsakis 在博客中论证,为了支持循环 trait 实现(cyclic trait impls),Rust 的 supertrait 验证必须采用「模块化证明」策略(由 impl 自身保证 supertrait 成立),而「外部化证明」策略与 Rust 现有设计不兼容。
一篇技术文章,介绍了 lang_narrow——一门带有流式类型(flow typing)的小型语言。它通过 is/in 表达式在控制流分支处对联合类型进行结构性收窄,并附带运行时实现、性能考量,以及将其联合类型与代数数据类型进行对比的讨论。
本文通过Futhark的就地更新作为例子,探讨了编程语言类型系统中别名的复杂性,并警告了这可能引入的设计挑战。
本文认为汇编语言实际上是有类型的,并介绍了Odin的内联汇编器作为最佳实现,因为它与语言的类型系统和语义诊断深度集成。
This paper presents CAKE, a compiler-agent co-design framework that lets AI agents author a hardware-explicit IR for GPU kernels, achieving significant speedups over baselines across various workload families.
这份1994年的技术说明描述了在Forth中构建确定性和非确定性有限状态自动机的方法,强调定义与状态表之间的一一对应,以避免缓慢的嵌套IF语句。
讨论两种并行化编译的方法:多进程(单线程编译器与构建系统生成多个实例)和进程内多线程(Rust和Zig使用)。比较了语言设计的权衡。
一次技术深度剖析,解释内存编译器是什么、如何使用位单元生成SRAM布局,以及从交叉耦合反相器到GDS拼接所涉及的设计概念。
Typst 通过约束记忆化(comemo)和纯函数设计,使语言和编译器协同工作,实现高效的增量编译和实时预览。文章详细介绍了布局缓存、模块评估记忆化、函数纯度以及内省系统的设计思路。
本文提出了一种有原则性的方法来重新思考 APL 等数组语言,通过将变量建模为输入维度的函数,旨在相较于传统方法提高可读性和错误检查能力。
一位开发者分享了可嵌入类型化语言 Ekto 的最新进展,该语言受 Lua、Koka 和 Erlang 启发,并讨论了为 Casper VM 实现引用计数、内存管理及有界续体时面临的挑战。
一篇技术博客文章批评了基于查询的编译器,认为其有效性受限于源语言的依赖结构,尤其是雪崩效应——变更可能广泛传播,使得增量更新往往和完全重建一样昂贵。