格林斯潘第十定律

✍ dations ◷ 2025-11-10 11:12:57 #格林斯潘第十定律

格林斯潘第十定律(Greenspun's tenth rule)是计算机编程领域,尤其是编程语言领域的一句格言:

任何C或Fortran程序复杂到一定程度之后,都会包含一个临时开发的、不合规范的、充满程序错误的、运行速度很慢的、只有一半功能的Common Lisp实现。

这表现了Lisp语言的灵活性和可扩展性,它包含了理论上编写复杂计算机程序需要的所有功能。而其他编程语言的核心实现却不能提供开发复杂程序的关键性功能支持。

该定律由菲利普·格林斯潘(Philip Greenspun)于1993年前后提出。尽管被称作“第十定律”,然而实际上并没有前九个定律。格林斯潘曾解释说:

对不起,Han-Wen,前面并没有九个定律。我只是想给它取一个令人印象深刻的名字。

Lisp语法几乎是抽象的,其程序以S-表达式形式构建,这等价于其他编程语言内置编译器中的抽象语法树。Lisp作为一种同像(homoiconic)的语言,不区分代码与数据,即:Lisp程序本身即Lisp数据结构。Lisp程序自身可通过宏生成额外的Lisp程序。因此,程序员可以相对轻松地构建复杂的特定领域语言。

如同保罗·格雷厄姆所说,Lisp比起其他语言可以更快地构建更健壮的程序。特别是Common Lisp有相当大的标准库,其中有大量的功能和灵活的接口,能写出符合各种编程范式的程序(如removereducemap等)。格林斯潘第十定律表示,任何复杂软件系统都需要上述的功能,都将从头到尾重新设计开发这一套系统,而这在Common Lisp中已经存在了。

知名黑客罗伯特·泰潘·莫里斯后来给该定律加上了推论,澄清适用该定律的“足够复杂的”程序集合:

……包括Common Lisp。

可以认为是对编写庞大而复杂的Common Lisp程序困难性的评论,或仅仅是对于Lisp中eval函数的幽默。格林斯潘第十定律和莫里斯推论都具备黑客幽默中“哈哈,但的确如此”的风格特征。

Template:Common Lisp

相关

  • 断袖男子同性间的情欲,自中国很早以来就有所纪录,称之为男色或男风。古代中国的史书即传有“美男破老、美女破舌”的说法,将美男与女色相提并论,用以劝谏君王离美色远谗言。在春秋战
  • 长征系列运载火箭长征系列运载火箭是中华人民共和国自行研制的航天运载工具,长征火箭从1965年开始研制,1970年“长征一号”运载火箭首次发射“东方红一号”卫星成功。目前,长征火箭有:长征一号、
  • 拉梅加布里埃尔·拉梅(Gabriel Lamé,1795年7月22日-1870年5月1日),法国数学家。拉梅年轻时学过法律,当过一家律师办事处的办事员。后来毕业于巴黎综合理工学院和巴黎高等矿业学校。18
  • 约瑟夫·博胡斯拉夫·费尔斯特约瑟夫·博胡斯拉夫·费尔斯特(捷克语:Josef Bohuslav Foerster,1859年12月30日-1951年5月29日),捷克作曲家,音乐评论家。生于一个音乐世家,早年就学于布拉格音乐学院,毕业后曾担任
  • 朱骏声朱骏声(1788年-1858年),字丰芑,号允倩。江苏吴县人。清代文字训诂学家。生于乾隆五十三年,四岁时能辨四声,十三岁读《说文解字》,无书不读,又长于诗赋词章。钱大昕感叹道:“衣钵之传,将
  • 方登峄方登峄(?-?),字凫宗,号屏垢,安徽桐城人,清代政治人物。方拱干之孙,方孝标之子。康熙甲戌贡生,官至工部主事。康熙五十二年(1713年)因南山案与子方式济流放黑龙江卜魁(今齐齐哈尔),卒于戍所。
  • 数字光影灯数字光影灯是一种先进的大功率,大幅面光影设备,运用精确的光学原理,实现了超高亮度、超大幅面、超远距离的成像要求。广泛应用于各类大型户内外场地,包括城市设施、展览中心、主
  • 关乃佳关乃佳(1956年-),女,满族,中国催化化学家、材料化学家,中国化学会会士,曾任南开大学副校长、教授、博士生导师。
  • 新公共行政新公共行政(英语:New Public Administration,简称NPA),是针对传统公共行政学的权威主义与效率至上的回应。新公共行政运动关注伦理与公共利益,致力建立民主行政。1968年,瓦尔多(英语:Dwight_Waldo)主办的第一次明诺布鲁克会议(英语:Minnowbrook Conference)为新公共行政学派的滥觞。
  • 蔡永淳蔡永淳(英语:Tsai Yung-Chun,Cai Yong-Chun,2000年8月8日-),台湾女歌手、女艺人,为文德音乐工作室/阳雪娱乐国际有限公司旗下艺人及女歌手。(页面存档备份,存于互联网档案馆)(繁体中文)