3

C、C++、Python、Java四种编程语言之间是什么关系?

 1 year ago
source link: https://direct5dom.github.io/2022/08/22/C%E3%80%81C-%E3%80%81Python%E3%80%81Java%E5%9B%9B%E7%A7%8D%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E4%B9%8B%E9%97%B4%E6%98%AF%E4%BB%80%E4%B9%88%E5%85%B3%E7%B3%BB%EF%BC%9F/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

C、C++、Python、Java四种编程语言之间是什么关系?

2022-08-22知乎回答

问题来自:请问C、C++、Python、Java四种编程语言之间是什么关系? - 知乎 (zhihu.com)

其实一般情况下没人在乎不同编程语言之间的关系,更在乎某一编程语言的特性是否是解决当下需求的最优解。

这点看很多回答把题主的“关系”理解成了“区别”就能看出来,“关系”其实不太重要。

当然,作为CS专业的学生,了解发展史还是有必要的。

这里推荐一个网站:Computer Languages History (levenez.com)

他们整理了一个编程语言族谱:lang.pdf (levenez.com)

C是你说的四个语言中最古老的,它是以B语言为基础设计出来的:

C语言影响的语言很多,详见:C programming language family
不夸张的说几乎现在是个语言都多多少少会受到过C的影响。
主要编译器实现:pcc, GCC, Clang, Intel C, C++Builder, Microsoft Visual C++, Watcom C

C++(早期称之为“C with Classes”)是C的“增强版”:

不过C++并没有提供对C的“完全向下兼容”。
主要编译器实现:GCC, LLVM Clang, Microsoft Visual C++, Embarcadero C++Builder, Intel C++ Compiler, IBM XL C++, EDG

Java(早期称之为“Oak”)的出现是离不开C++的,可以看作是C++的“改良版”,同时也吸取了当时很多其他语言的特性:

Java有时候也被戏称为“C+±-”,就是在说它继承了C++的一些特性(面向对象)的同时,也舍弃掉了很多东西(引用取代指针)。
Java是Sun的产品,不过也有很多民间的免费JDK。参考:Free Java implementations - Wikipedia
顺便从上图也能看出来,JavaScript和Java其实就是老婆饼和老婆的关系。

Python

Python和其他三者的关系就很弱了,它是ABC语言的后继者:

Python与C/C++以及Java的关系很弱,无论是从族谱,还是设计理念皆如此。
主要解释器实现:CPython, PyPy, Stackless Python, MicroPython, CircuitPython, IronPython, Jython


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK