來源:互聯網
上載者:User
關鍵字
javascript
php
java
golang
c
哪些核心最小,最乾淨的程式設計語言會存在於進化的主幹上。
一種語言核心設計的越小,越乾淨,它的生命力就越頑強 - 《駭客與畫家》
那現在什麼語言核心設計的小而且乾淨呢?
回複內容:
哪些核心最小,最乾淨的程式設計語言會存在於進化的主幹上。
一種語言核心設計的越小,越乾淨,它的生命力就越頑強 - 《駭客與畫家》
那現在什麼語言核心設計的小而且乾淨呢?
其實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核心肯定是很乾淨的