前不久,我看到GRAMHAM關於語言的文章,讓我對語言的類別進行了更深的思考,在去探求目前流行的語言的時候,咱們應該瞭解下她的原由。對於原由,至關於解決一下幾個問題: javascript
因此GRAMHAM在文中談到了FORTRAN和LISP,兩種古老的語言。一種卻正在消失,另外一種看起來正在流行。做者表達了FORTRAN和LISP的設計理念是徹底不一樣的。前者表示依賴於硬件,可以與硬件交流的語言;後者則表示依賴於數學上的語義,而這種語義在計算機中是如何表現的。 java
故對於編程也有兩種方式,一種是基於一種語言的特性,利用這種特性,來知足程序的設計;另外一種則是增長這種語言的特性,使需求複雜而特殊的性質,轉化爲一種語言的特性,而利用這種特性,能夠簡化需求的設計。用一種通俗的說法,前者的編譯器是可改變的,然後者的解釋器能夠重寫。而語言特性是依賴於編譯器(或者解釋器)的設計。 python
目前,咱們使用的主流的語言如c,c++,java等都是不能夠用自己的語言區改變這門語言的特性;而函數式的語言每每能夠本身從新定義解釋器,例如common lisp,scheme等等。而還有不少語言都在從前一種語言到後一種語言進化(儘管lisp是一門很古來的計算機語言)。例如,ruby,python,javascript等等解釋性語言。 c++
注:fortran並非正在消失,也許是由於硬件架構的改變,它正變成其餘高級語言,例如c,c++;lisp也並非一成不變,它同時也產生了不少方言(dialect),例如scheme,elisp,clisp等等。初看時,前者的改變讓咱們沒法認識,然後者倒是如此的類似;再看時,前者卻沒有變,然後者已不是之前。 編程