FORTRAN & LISP

    前不久,我看到GRAMHAM关于语言的文章,让我对语言的类别进行了更深的思考,在去探求目前流行的语言的时候,我们应该了解下她的起因。对于起因,相当于解决一下几个问题:

  •     1.语言解决的问题;
  •     2.这种语言为什么在当时流行起来
  •     3.这种语言是否会消失,消失的原因是什么,不会消失的原因是什么;
  •     4.针对类似问题,同时期的解决方案(同时期创造的语言)

所以GRAMHAM在文中谈到了FORTRAN和LISP,两种古老的语言。一种却正在消失,另一种看起来正在流行。作者表达了FORTRAN和LISP的设计理念是完全不同的。前者表示依赖于硬件,能够与硬件交流的语言;后者则表示依赖于数学上的语义,而这种语义在计算机中是如何表现的。

    故对于编程也有两种方式,一种是基于一种语言的特性,利用这种特性,来满足程序的设计;另一种则是增加这种语言的特性,使需求复杂而特殊的性质,转化为一种语言的特性,而利用这种特性,可以简化需求的设计。用一种通俗的说法,前者的编译器是可改变的,而后者的解释器可以重写。而语言特性是依赖于编译器(或者解释器)的设计。

    目前,我们使用的主流的语言如c,c++,java等都是不可以用本身的语言区改变这门语言的特性;而函数式的语言往往可以自己重新定义解释器,例如common lisp,scheme等等。而还有很多语言都在从前一种语言到后一种语言进化(尽管lisp是一门很古来的计算机语言)。例如,ruby,python,javascript等等解释性语言。

注:fortran并不是正在消失,也许是因为硬件架构的改变,它正变成其他高级语言,例如c,c++;lisp也并不是一成不变,它同时也产生了很多方言(dialect),例如scheme,elisp,clisp等等。初看时,前者的改变让我们无法认识,而后者却是如此的相似;再看时,前者却没有变,而后者已不是以前。

你可能感兴趣的:(语言,lisp,计算机思想)