编程语言的发展

作者: aubell | 来源:发表于2022-12-15 13:13 被阅读0次

系的划分

编译VS解释

这种划分是最早的一种划分方式。现代的很多语言运行在虚拟机上,被编译成为虚拟机的代码,然后解释执行,这就很难准确的说,这种方式究竟是编译的还是解释的。

确定编译成为二进制代码的语言有Pascal,Ada,C,C++等。

编译成为虚拟机代码的有Java,Perl等

解释执行的有Lua,JavaScript.

既可以编译,也可以解释的有Basic.

C VS Lisp

人们说,C和Lisp是编程语言的两大高峰,因此可以用这两种语言来划分。C系的语言往纵深发展,在C语言功能的基础上,或者扩展,或者简化,就诞生了不少语言。Lisp语言则往广度发展,诞生之初就有各种不同的方言,还在继续产生不同的方言。

C系

C系

“goto” 有害,结构化是好的,于是诞生了Pascal.
语言太多不好,于是诞生了Ada(尽管她又增加了一种语言)
远离机器不好,于是诞生了C(C不但保留了goto,更有long jump)
面向对象是好的,泛型是好的,于是诞生了C++
指针危险,安全性很重要,于是诞生了Java
对C进行嵌入是好的,于是诞生了Lua
做事的方式可以有很多种,于是诞生了Perl
做事的方式只有一种是最好的,于是诞生了Python

Python明显在针对Perl,因此它不会承认自己发展自Perl,而是说发展自一种叫做ABC的语言,所以上图没有把它放在Perl之下。

C系编程语言的发展历程,形象生动的展示了事物发展按照”肯定,否定,否定之否定“的发展规律。

Lisp系

Lisp系

Lisp语言的发展,从一开始就走上了”百花齐放“的道路。

爱好者们往往喜欢把编写lisp解释器当作自己的第一个练习,一旦成功,并且发布,就导致一种新的Lisp方言诞生了。

其它

Asm

汇编语言,不同的机器就有不同的语言,是最基础和很重要的语言。很多语言的第一个编译器是用汇编语言写的,第二个编译器是用自身语言写的,然后用第一个编译器编译第二个编译器的代码,生成新的编译器,再用新的编译器编译编译器的代码,如此循环直到编译器自身不变。

Basic系

Basic因为比尔盖茨的缘故,得到长足的发展。从最初的解释器,逐步发展到可以编译执行,而且在这个世界上,占据了不可缺或的地位。


BASIC的发展

Forth,PostScript,两种基于栈的语言,应该属于特立独行的一系。

系的交叉


交叉发展图

系的重新划分

编程语言的发展

从上图可以看出,编程语言的两大体系其实是

Algol家族和Lisp家族

游离在体系之外的有:各种汇编语言(Asm),面向栈的语言(Forth,Postscript),以及古老的COBOL语言等.BASIC也可以自成一系。Fortran诞生时太早,以至于不在体系内。

具有里程碑意义的语言

第一种高级编程语言:Fortran
第二种高级编程语言:Lisp
几乎是现代所有语言的鼻祖:Algol60
函数式编程:Lisp
结构化:Pascal
面向对象: Simula,Smalltalk
精简:C
国家级世界级的语言:Ada
安全性高的语言:Java
网页的汇编语言:Javascript
微软的语言:Visual Basic
数据存储:SQL

再画一张谱系图

这个图总也画不满意,因为一些程序设计语言似乎是凭空产生的,没有来历
Basic是为了简化Fortran设计的,所以起源应该是Fortran,改变一下
Haskell基于Lambda演算


谱系图

相关文章

网友评论

    本文标题:编程语言的发展

    本文链接:https://www.haomeiwen.com/subject/dzokqdtx.html