标签
一篇探讨联合类型及其特例——可选类型(T|Nothing)的博客文章,以及作者在 Copper(一种极简的底层“更好的 C”语言)中实现它们的实验,包括设计上的限制,以及为什么完整的联合类型被证明过于复杂。
博客文章论证 Pratt 解析应被视为黑盒来使用,强调理解 nuds/leds 心智模型比记忆 9 行算法实现更重要,并对比了与 GNU Bison 等传统解析技术的差异。
Sawyer X 在 Code Maven 的 Zig 演讲中,通过配置解析与内存分配示例,讲解 Zig 的核心设计哲学:一切可见、无隐藏控制流、无宏与运算符重载,并尽量将问题提升为编译时错误。
一篇综述论文,考察了1960年至2000年四十年间的即时编译研究,涵盖其研究动机、设计约束以及即时编译系统的分类体系。
Martin Uecker 发布了博客系列的第一部分,深入解析 C 语言的有效类型规则如何支撑基于类型的别名分析(TBAA),并说明编译器如何利用这些规则进行与未定义行为(UB)相关的优化。
作者回顾四个月重返 Zig 的经历,包括开发 snurl、参加 Zig Day Seattle(Andrew Kelley 出席)以及对 anyzig、内建 fuzzing、TLS 等的喜爱与不满,并与 Rust 做了对比。
Syl 是一门新的系统编程语言,它在模态类型系统中编码编译时计算,通过静态/动态和擦除/未擦除两条模态轴来实现单态化和编译时依赖类型,其灵感来源于双层类型理论和 OxCaml。
C++26 未通过 ISO DIS 投票——这是 C++ 草案历史上首次未能通过——契约(contracts)、反射、std::execution 以及库加固(library hardening)均未获批准,仅获得 20 票中的 12 票赞成和 9 票反对。
一篇个人博客文章,通过讲解调度场算法、一个简单的 C 语言实现,以及作者在阅读 Pratt 原始论文时所做的笔记,来解释 Pratt 解析法。作者当时正在构建一个 C 表达式解析器,未来可能会发展成一个编译器。
一篇技术深度解析博客,介绍动态类型语言运行时如何用对象形状/映射(隐藏类)取代基于哈希表的属性存储,以加速属性的读写,并最终构建一个受 CF Bolz-Tereick《A Simple Object Model》启发的、小型且易于理解的实现。
一篇博客文章,详细介绍了论文《流类型:透过透镜重新审视线性》,该论文利用透镜理论,在不增加核心语言复杂性的前提下解决线性类型系统中的穿线问题,并介绍了作者在一门名为 Laminar 的新语言中开展的实现实验。
一篇博客文章,论证CML(Concurrent ML)基于事件的并发模型优于Go的CSP方法,统一了选择与取消机制,支持组合并避免goroutine泄漏,并通过Racket示例加以演示。
Ante 语言设计者介绍了一种新的借用检查方案,通过融合 group borrowing 等思想,在保持无悬垂指针安全的前提下,实现零成本的循环可变性与更宽松的共享可变性检查。
Programming Language Foundations in Agda (PLFA) 是一本使用证明助手 Agda 讲解编程语言理论的开源教材,涵盖逻辑基础、操作语义与指称语义,并列出了多门采用该书授课的高校课程。
一篇来自 Lobste.rs 的讨论,主题是组合对象以及即将纳入 C++26 标准的 std::polymorphic 类型,探讨它如何在不依赖继承的情况下实现类型擦除多态。
一篇关于 C++ 内存安全问题的博客文章,探讨 NSA 和欧盟对内存不安全语言的警告,并在纪念 Rainer Grimm 逝世、由社区专家接手维护其博客的背景下展开讨论。
一篇探讨Java密封类与穷尽模式匹配的博文,指出添加新的子类型可能会破坏消费者代码,而过期的编译产物会导致运行时MatchException而非编译期错误。作者总结认为,密封类型最好在组件内部使用,而非暴露在公共API中。
一篇深入的技术博客,介绍了 Valen 编程语言中一种新颖的逆向遍历借用检查器:它通过时间倒流的方式遍历函数来验证内存安全,同时可以有选择地放宽共享与可变互斥的规则。
Basis 研究人员利用 LLM 为一门小型编程语言编写形式化语义,并使用 Lean 证明编译到 RISC-V 后解释器符合这些规则。他们将现有解释器作为基准真值,以克服验证式软件中的规范瓶颈。
Zig 软件基金会会长 Andrew Kelly 在 Software you can Love 2026 温哥华站的演讲《Getting Canceled》中,从硬件角度(中断、流水线、缓存一致性)解释线程与并发的本质,并说明为何竞争带来的根本复杂性无法被软件抽象消除。