目錄
回复内容:
首頁 後端開發 php教程 javascript - 哪些语言内核最小最干净?

javascript - 哪些语言内核最小最干净?

Jun 06, 2016 pm 08:13 PM
c golang java javascript 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

lisp
wiki

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

显然是lisp

编程语言里的文艺青年非lisp莫属了。

脚本:lua

Lua Programming Language +1

说到内核,没有见过比 Lua 更简洁的。
可以看看 Lua 的源码,写的非常棒。仅仅 24000 行,就实现了一个功能强大的扩展语言。

scheme+1

我觉得 C 的内核足够小,因为它几乎没啥内核。

上面有一些同学认为 scheme 内核小,我觉得这是只看到了表面现象。不能根据 scheme 标准有多少页来衡量其内核规模。不说别的,仅内存回收这一点事,就可以让它的内核不小也不干净。

10100010101001011101

难道不是汇编语言??

最干净的莫过于01了,或者更深入的是二极管的开关了,没有之一

什么语言我不知道 linux内核肯定是很干净的

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
繼續使用PHP:耐力的原因 繼續使用PHP:耐力的原因 Apr 19, 2025 am 12:23 AM

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

Golang和C:並發與原始速度 Golang和C:並發與原始速度 Apr 21, 2025 am 12:16 AM

Golang在並發性上優於C ,而C 在原始速度上優於Golang。 1)Golang通過goroutine和channel實現高效並發,適合處理大量並發任務。 2)C 通過編譯器優化和標準庫,提供接近硬件的高性能,適合需要極致優化的應用。

Golang vs.C:性能和速度比較 Golang vs.C:性能和速度比較 Apr 21, 2025 am 12:13 AM

Golang適合快速開發和並發場景,C 適用於需要極致性能和低級控制的場景。 1)Golang通過垃圾回收和並發機制提升性能,適合高並發Web服務開發。 2)C 通過手動內存管理和編譯器優化達到極致性能,適用於嵌入式系統開發。

IIS和PHP的兼容性:深度潛水 IIS和PHP的兼容性:深度潛水 Apr 22, 2025 am 12:01 AM

IIS和PHP可以兼容,通過FastCGI實現。 1.IIS通過配置文件將.php文件請求轉發給FastCGI模塊。 2.FastCGI模塊啟動PHP進程處理請求,提高性能和穩定性。 3.實際應用中需注意配置細節、錯誤調試和性能優化。

Golang vs. Python:利弊 Golang vs. Python:利弊 Apr 21, 2025 am 12:17 AM

Golangisidealforbuildingscalablesystemsduetoitsefficiencyandconcurrency,whilePythonexcelsinquickscriptinganddataanalysisduetoitssimplicityandvastecosystem.Golang'sdesignencouragesclean,readablecodeanditsgoroutinesenableefficientconcurrentoperations,t

如果session_start()被多次調用會發生什麼? 如果session_start()被多次調用會發生什麼? Apr 25, 2025 am 12:06 AM

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

在Golang和Python之間進行選擇:適合您的項目 在Golang和Python之間進行選擇:適合您的項目 Apr 19, 2025 am 12:21 AM

golangisidealforperformance-Critical-clitageAppations and ConcurrentPrompromming,而毛皮刺激性,快速播種和可及性。 1)forhigh-porformanceneeds,pelectgolangduetoitsefefsefefseffifeficefsefeflicefsiveficefsiveandconcurrencyfeatures.2)fordataa-fordataa-fordata-fordata-driventriventriventriventriventrivendissp pynonnononesp

作曲家:通過AI的幫助開發PHP 作曲家:通過AI的幫助開發PHP Apr 29, 2025 am 12:27 AM

AI可以幫助優化Composer的使用,具體方法包括:1.依賴管理優化:AI分析依賴關係,建議最佳版本組合,減少衝突。 2.自動化代碼生成:AI生成符合最佳實踐的composer.json文件。 3.代碼質量提升:AI檢測潛在問題,提供優化建議,提高代碼質量。這些方法通過機器學習和自然語言處理技術實現,幫助開發者提高效率和代碼質量。

See all articles