嗨, 大家好: 网站在新年后正式开通,欢迎大家加入我们,共同维护一个良好氛围的中国技术社区。 欢迎举报不良帖子,欢迎提供建议。
我们的QQ群:136102234,欢迎进群找答案,里边会有很多资深的大师们。 point overflow

哪些内核最小,最干净的编程语言会存在于进化的主干上。
一种语言内核设计的越小,越干净,它的生命力就越顽强 - 《黑客与画家》

那现在什么语言内核设计的小而且干净呢?

提问了 2016-03-17 17:36:13

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%


12下一页 »

其实Graham言外之意就是指LISP了吧,他对这门语言真的非常喜爱,在黑客与画家之中多次对其高度赞扬。

按照他对语言的内核小和干净的定义,我觉得咱们现在可能没有一门编程语言(我是指至少TIOBE排名前二十)能达到这个标准的。

Graham所指的语言内核小而干净,在我看来,主要是指语言的rule较少,较为compact,而并非指语言之上的上层建筑(工具链,函数库,设计思想等等)。LISP是满足这个定义的,如果学过一点LISP便会知道,LISP的语言核心几乎可以在一个下午学会,这显然是担得起简洁,小,干净这些词语的。

我们都知道,无论你用的什么语言,虽然他们提供了不同的特性不同的功能,但实际上这些语言的表达能力是完全一样的,即他们都是图灵完备的语言。表达能力一样归一样,但不同的语言提供了不同的抽象层次,继而表现为语言的易用性不同。作为一款给人类使用的语言,显然是抽象层次越高,对common patterns提供的支持越多,就越好用,开发效率也就越高。而现代的开发语言多是工程用途,因此如果以简内核作为设计思想的话很一个显而易见的结果就是重复发明的轮子众多,开发效率不高,容易出错等等。所以,从工程的角度考量,我们会加入许多非核心的“调料”,所以从这个意义上来讲,现代语言大多面向工程需求,因此往往不会具备这个特点

另外如果题主对这类“干净”的语言感兴趣的话,可以看看一些学术界的语言
这里面有许多挺好玩儿的语言,可能能满足你的好奇心 :-)

永久链接

已回答 2016-03-17 17:36:37

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

Lua Programming Language

永久链接

已回答 2016-03-17 17:36:53

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

并不清楚这本书是如何定义编程语言的内核这个概念的。
如果单纯只内存分配机制、堆栈管理策略等高级语言的基础配置,那这几门语言说起来并没有太大差别。
但是如果牵扯上运行环境、解释器等全方位的比较,那显然C、golang等要比其他需要运行环境的语言干净很多。

永久链接

已回答 2016-03-17 17:37:02

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

当然是 汇编 了

永久链接

已回答 2016-03-17 17:37:08

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

我是觉得写起来越贴近自然语言,就越顽强

永久链接

已回答 2016-03-17 17:37:15

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

Lua +1.

巴西人不光足球厉害,Lua让我们脸红。

永久链接

已回答 2016-03-17 17:37:21

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

就现阶段来说,Python应该最接近自然语言吧

永久链接

已回答 2016-03-17 17:37:30

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

一门编程语言可能包括编译器、虚拟机、垃圾回收(GC)等,如果这些都加一起的话,那么C语言最简单了。

永久链接

已回答 2016-03-17 17:37:38

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

lisp
wiki

永久链接

已回答 2016-03-17 17:37:43

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

lisp 吧,严格来说只有九条语法规则,其他的都是语法糖。
Haskell 也不多,具体多少我也不清楚,因为还只是一个初学者,只是看到后面发现前面定义的好多东西也只是语法糖以及对这些糖的优化而已。

永久链接

已回答 2016-03-17 17:37:51

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

你的回答
切换预览

关注这个问题

邮件:

登录之后,你可以在这里订阅任何更新。

RSS:

回答

回答和评论

Markdown基本语法

  • *italic* or _italic_
  • **bold** or __bold__
  • 链接:[文本](http://url.com/ "标题")
  • 图片?![alt 文本](/path/img.jpg "标题")
  • 编号列表: 1. Foo 2. Bar
  • 如果想要换行,只需要在前一行结尾处插入2个空格即可。
  • 支持基本HTML标记

问题标签:

×1
×1

已提出的问题: 2016-03-17 17:36:13

问题浏览量: 8,304 次

最后更新: 2016-03-17 17:38:44

相关问题