The Axis of Eval

RSS: https://axisofeval.blogspot.com/feeds/posts/default?alt=rss
Manuel Simoni 的编程语言技术博客。

一种让类型语言与 JavaScript 共存的替代构想

作者提出一种名为 Qwax 的新类型语言构想,主张将对象与 JavaScript 完全隔离,而非像 TypeScript 那样尝试为现有代码添加类型。该方案借鉴 Virgil 语言,采用简单的函数式类型系统和完整的运行时类型信息(RTTI),以实现类型安全且性能接近原生 JS。 这种设计使得 JS 成为“不安全”的外语,增加了互操作摩擦,但避免了复杂类型系统的负担。作者认为这比 Elm 或 ReScript 更具兼容性,因为保留了 JS 语法并支持从 JS 安全回传对象,适合追求简单类型系统的开发者讨论。
评论点赞收藏644 天前

受限生成器:一种更自然的 JavaScript 生成器 API

作者提出使用生成器模拟“受限控制流”,让异步代码写得像同步阻塞代码一样直观。他封装了一个轻量库 delimgen,展示了如何在 JavaScript 中实现这种写法。 HN 社区反馈该实现存在栈泄漏问题,后经证实只是浏览器开发者工具的显示假象。这引发了关于 JS 异步底层机制和调试工具行为的有趣讨论。
评论点赞收藏833 天前

使用 RDP 窥探未来

Reactive Demand Programming (RDP) 支持乐观预测信号的“未来状态”,以此解决渲染延迟问题。 通过预判时钟或鼠标移动的未来值,程序可在后台提前计算,在精确时刻切换显示。
评论点赞收藏3686 天前

蠕虫即香料:论响应式系统与文件的对称性

作者提出在响应式系统中,动态输出流与静态文件具有对称性。进程可随时更新已发出的数据,就像编辑文件一样。 这种对称性允许在UI中将文件和进程互换使用,把文件视为由用户编辑输出的被动进程,拓展了交互设计的思路。
评论点赞收藏3740 天前

用 RESTful 方式处理大规模数据的 Reactive Demand Programming

作者提出将 Reactive Demand Programming 的信号视为 RESTful 服务器,利用 HTTP ETag 机制处理数据库表等大数据量的增量同步。 客户端通过对比 ETag 获取完整数据、差异更新或重新拉取,旨在实现增量 MapReduce 等复杂编排场景。
评论点赞收藏4031 天前

我对 Urbit 的初步认知

作者梳理了 Urbit 操作系统的几个核心设计特点,包括其有限的身份标识数量、基于自写的 Hoon 编程语言以及为了效率引入的 C 代码替换机制。 文章引用了 Kragen 的观点,指出 Urbit 的设计初衷可能是为了削弱用户权力,使其受制于类似封建领主的控制者。
评论点赞收藏4044 天前

反应式需求编程(RDP)的极简实现

作者用 JavaScript 编写了一个约 200 行的“bucky-rdp”库,以实现反应式需求编程(RDP)。该实现重点支持了 Sirea 库中的 bconst、bpipe 和 bfmap 等核心概念。 文中提供了详细的代码注释和示例,旨在帮助开发者直观理解 RDP 的工作机制。
评论点赞收藏4079 天前

深入理解响应式需求编程(RDP)

作者深入解析了 David Barbour 提出的响应式需求编程(RDP)模型,将其比作继 Unix 之后最有趣的系统设计之一。文章将 RDP 的行为、信号和资源分别对应 Unix 的进程、管道和存储,帮助理解其声明式架构。 文中详细介绍了信号的组合方式、行为的按需计算特性以及资源的外部状态访问机制,并结合 Sirea Haskell 实现展示了数据流网络的构建方法。
评论点赞收藏4085 天前

对数学的痴迷

作者批评编程语言研究领域过度沉迷数学理论和意识形态推测,忽视了历史研究和社会科学合作。认为这种倾向让研究者回避现实世界的复杂问题。 引用 Phil Greenspun 关于经济学的观点,将其替换为编程语言领域,暗示该学科存在类似的学术自嗨现象。
评论点赞收藏4441 天前

马德里 Lisp 周记:从铁路调度到下一代操作系统

作者回顾了2013年在马德里举行的欧洲Common Lisp会议和Lisp研讨会。文中记录了与Pascal Costanza、Charlotte Herzeel等知名Lisp开发者的交流,讨论了Lisp-1与Lisp-2之争及3-Lisp等小众话题。 文章还介绍了SISCOG系统在铁路调度中的成功应用,以及OpusModus音乐创作工具。作者特别提到与Guile、Racket等项目核心开发者的深入交谈,以及对下一代操作系统设计的思考。
评论点赞收藏4814 天前

Wat 现在也支持 Perl、Python 和 Ruby 了

开发者 Manuel 宣布其著名的 Wat JavaScript 解释器被移植到了 Perl、Python 和 Ruby 语言中。 这些移植工作由社区成员完成,展示了该小众实验项目的跨语言生命力。
评论点赞收藏4827 天前

20行Wat代码在浏览器中实现绿色线程

作者展示了如何在浏览器中使用仅20行代码的Wat语言实现绿色线程。通过利用JavaScript的setTimeout和分隔延续(delimited continuations),实现了协作式多任务处理。 这展示了Lisp风格的元编程能力如何嵌入JavaScript环境,为前端并发模型提供了有趣的实验性视角。
评论点赞收藏4846 天前

编程语言设计与实现的“新低”:350 行代码实现自举

作者介绍了一种名为 Wat 的语言实现方案,仅用约 350 行 JavaScript 代码即可在 JS 环境中构建新语言。该方案利用 fexprs、词法环境、延续和宏等技术,实现了自举编写,并采用 JSON 作为语法基础以简化解析过程。 这种极简且硬核的语言设计思路,展示了如何通过组合现有 JS 特性来快速验证语言概念,适合对元编程和语言实现感兴趣的开发者深入阅读。
评论点赞收藏4847 天前

Wat 虚拟机的最新进展

作者 Manuel 宣布重构其极简 JavaScript 语言解释器 Wat,将其转变为更纯粹的虚拟机。 新版仅保留分隔符延续、异常处理、fexprs 及宏等核心特性,放弃拟引用和 Scheme 风格宏,旨在为构建 JS 基语言提供极简基础设施。
评论点赞收藏4851 天前

我终于能理解的 Quasiquote 实现方案

作者提出了一种简化 Lisp 中 quasiquote 实现的新思路,将列表处理视为 append 操作,从而简化了 unquote-splicing 的逻辑。 这种方法让原本复杂的语法糖变得直观易懂,适合对 Lisp 内部机制感兴趣的开发者阅读。
评论点赞收藏4857 天前

Taf语言向O'Caml的类型检查转换实现

作者介绍其自研Lisp方言Taf,通过将对象编码为O'Caml类来实现类型检查和运行时。 涉及行多态、宏及动态类型转换的工程细节,旨在最终实现自举。
评论点赞收藏4943 天前

当前项目

作者因追求更好的Lisp语言体验,开始关注静态类型,并计划开发Taf。预计夏季前发布。
评论点赞收藏4961 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。