哪些内核最小,最干净的编程语言会存在于进化的主干上。
一种语言内核设计的越小,越干净,它的生命力就越顽强 - 《黑客与画家》
那现在什么语言内核设计的小而且干净呢?
哪些内核最小,最干净的编程语言会存在于进化的主干上。
一种语言内核设计的越小,越干净,它的生命力就越顽强 - 《黑客与画家》
那现在什么语言内核设计的小而且干净呢?
其实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
lisp
wiki
lisp
吧,严格来说只有九条语法规则,其他的都是语法糖。Haskell
也不多,具体多少我也不清楚,因为还只是一个初学者,只是看到后面发现前面定义的好多东西也只是语法糖以及对这些糖的优化而已。
显然是lisp
编程语言里的文艺青年非lisp莫属了。
脚本:lua
Lua Programming Language +1
说到内核,没有见过比 Lua 更简洁的。
可以看看 Lua 的源码,写的非常棒。仅仅 24000 行,就实现了一个功能强大的扩展语言。
scheme+1
我觉得 C 的内核足够小,因为它几乎没啥内核。
上面有一些同学认为 scheme 内核小,我觉得这是只看到了表面现象。不能根据 scheme 标准有多少页来衡量其内核规模。不说别的,仅内存回收这一点事,就可以让它的内核不小也不干净。
10100010101001011101
难道不是汇编语言??
最干净的莫过于01了,或者更深入的是二极管的开关了,没有之一
什么语言我不知道 linux内核肯定是很干净的