扫码关注官方订阅号
哪些内核最小,最干净的编程语言会存在于进化的主干上。一种语言内核设计的越小,越干净,它的生命力就越顽强 - 《黑客与画家》
那现在什么语言内核设计的小而且干净呢?
学习是最好的投资!
其实Graham言外之意就是指LISP了吧,他对这门语言真的非常喜爱,在黑客与画家之中多次对其高度赞扬。
按照他对语言的内核小和干净的定义,我觉得咱们现在可能没有一门编程语言(我是指至少TIOBE排名前二十)能达到这个标准的。
Graham所指的语言内核小而干净,在我看来,主要是指语言的rule较少,较为compact,而并非指语言之上的上层建筑(工具链,函数库,设计思想等等)。LISP是满足这个定义的,如果学过一点LISP便会知道,LISP的语言核心几乎可以在一个下午学会,这显然是担得起简洁,小,干净这些词语的。
我们都知道,无论你用的什么语言,虽然他们提供了不同的特性不同的功能,但实际上这些语言的表达能力是完全一样的,即他们都是图灵完备的语言。表达能力一样归一样,但不同的语言提供了不同的抽象层次,继而表现为语言的易用性不同。作为一款给人类使用的语言,显然是抽象层次越高,对common patterns提供的支持越多,就越好用,开发效率也就越高。而现代的开发语言多是工程用途,因此如果以简内核作为设计思想的话很一个显而易见的结果就是重复发明的轮子众多,开发效率不高,容易出错等等。所以,从工程的角度考量,我们会加入许多非核心的“调料”,所以从这个意义上来讲,现代语言大多面向工程需求,因此往往不会具备这个特点
另外如果题主对这类“干净”的语言感兴趣的话,可以看看一些学术界的语言这里面有许多挺好玩儿的语言,可能能满足你的好奇心 :-)
Lua Programming Language
并不清楚这本书是如何定义编程语言的内核这个概念的。如果单纯只内存分配机制、堆栈管理策略等高级语言的基础配置,那这几门语言说起来并没有太大差别。但是如果牵扯上运行环境、解释器等全方位的比较,那显然C、golang等要比其他需要运行环境的语言干净很多。
编程语言的内核
干净
我是觉得写起来越贴近自然语言,就越顽强
Lua +1.
巴西人不光足球厉害,Lua让我们脸红。
就现阶段来说,Python应该最接近自然语言吧
Python
IOIOIO
一个仅有5条BNF的语言
一门编程语言可能包括编译器、虚拟机、垃圾回收(GC)等,如果这些都加一起的话,那么C语言最简单了。
严肃点的话,Scheme的正式的语言标准(R5RS)只有50页。好像最新的R7RS有80页。我用Haskell写过的scheme解释器大概四百行,虽然不是完全按照标准,但是拿来做SICP前三章的习题(第四章我还没看)是够了。
不严肃的话,Brainfuck,WhiteSpace等奇葩语言吧。
曾经写过的拿来练手的Brainfuck和WhiteSpace语言解释器:https://github.com/Alaya-in-Matrix/Anjelica
10100010101001011101
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
其实Graham言外之意就是指LISP了吧,他对这门语言真的非常喜爱,在黑客与画家之中多次对其高度赞扬。
按照他对语言的内核小和干净的定义,我觉得咱们现在可能没有一门编程语言(我是指至少TIOBE排名前二十)能达到这个标准的。
Graham所指的语言内核小而干净,在我看来,主要是指语言的rule较少,较为compact,而并非指语言之上的上层建筑(工具链,函数库,设计思想等等)。LISP是满足这个定义的,如果学过一点LISP便会知道,LISP的语言核心几乎可以在一个下午学会,这显然是担得起简洁,小,干净这些词语的。
我们都知道,无论你用的什么语言,虽然他们提供了不同的特性不同的功能,但实际上这些语言的表达能力是完全一样的,即他们都是图灵完备的语言。表达能力一样归一样,但不同的语言提供了不同的抽象层次,继而表现为语言的易用性不同。作为一款给人类使用的语言,显然是抽象层次越高,对common patterns提供的支持越多,就越好用,开发效率也就越高。而现代的开发语言多是工程用途,因此如果以简内核作为设计思想的话很一个显而易见的结果就是重复发明的轮子众多,开发效率不高,容易出错等等。所以,从工程的角度考量,我们会加入许多非核心的“调料”,所以从这个意义上来讲,现代语言大多面向工程需求,因此往往不会具备这个特点
另外如果题主对这类“干净”的语言感兴趣的话,可以看看一些学术界的语言
这里面有许多挺好玩儿的语言,可能能满足你的好奇心 :-)
Lua Programming Language
并不清楚这本书是如何定义
编程语言的内核这个概念的。如果单纯只内存分配机制、堆栈管理策略等高级语言的基础配置,那这几门语言说起来并没有太大差别。
但是如果牵扯上运行环境、解释器等全方位的比较,那显然C、golang等要比其他需要运行环境的语言
干净很多。我是觉得写起来越贴近自然语言,就越顽强
Lua +1.
巴西人不光足球厉害,Lua让我们脸红。
就现阶段来说,
Python应该最接近自然语言吧IO
IO
IO
一个仅有5条BNF的语言
一门编程语言可能包括编译器、虚拟机、垃圾回收(GC)等,如果这些都加一起的话,那么C语言最简单了。
严肃点的话,Scheme的正式的语言标准(R5RS)只有50页。好像最新的R7RS有80页。
我用Haskell写过的scheme解释器大概四百行,虽然不是完全按照标准,但是拿来做SICP前三章的习题(第四章我还没看)是够了。
不严肃的话,Brainfuck,WhiteSpace等奇葩语言吧。
曾经写过的拿来练手的Brainfuck和WhiteSpace语言解释器:https://github.com/Alaya-in-Matrix/Anjelica
10100010101001011101