知识卡片

小语言也完整

普通读书笔记卡 · 1497

内容

“精简的JavaScript”子集为编写 JavaScript 解析器而提炼,只保留函数(词法作用域闭包)、原型继承动态对象、对象/数组字面量三类核心特性,就足以让语言解析自身、实现真正程序;能否自举编译器是语言完整性的一个测试。特性并非越多越好,每个特性都有设计、开发、测试和文档成本。关联:[[精华胜过整体]];发散:表达力来自少数原语的组合而非特性堆砌。

参考来源

- 位置:《JavaScript语言精粹(修订版)》第10章《优美的特性 Beautiful Features》 - 结论依据:原文说明作者为写 JavaScript 解析器提炼出"精简的JavaScript",主要内容只有"函数是顶级对象""基于原型继承的动态对象""对象字面量和数组字面量"三项,并指出"一门语言是否具备为其自身编写一个编译器的能力,仍然是对这门语言完整性的一个测试",同时论述特性越多带来的规范/设计/测试等成本越高,据此推出小而精的语言子集足以表达复杂程序的结论。 - 原始内容:精简的JavaScript里都是好东西,包括以下主要内容。函数是顶级对象……基于原型继承的动态对象……对象字面量和数组字面量……一门语言是否具备为其自身编写一个编译器的能力,仍然是对这门语言完整性的一个测试。