FORTRAN & LISP

    前不久,我看到GRAMHAM關於語言的文章,讓我對語言的類別進行了更深的思考,在去探求目前流行的語言的時候,咱們應該瞭解下她的原由。對於原由,至關於解決一下幾個問題: javascript

  •     1.語言解決的問題;
  •     2.這種語言爲何在當時流行起來
  •     3.這種語言是否會消失,消失的緣由是什麼,不會消失的緣由是什麼;
  •     4.針對相似問題,同時期的解決方案(同時期創造的語言)

因此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等等。初看時,前者的改變讓咱們沒法認識,然後者倒是如此的類似;再看時,前者卻沒有變,然後者已不是之前。 編程

相關文章
相關標籤/搜索