如图 1 所示,计算机语言的发展主要分为三个阶段。
第一代计算机语言称为机器语言。机器语言就是 0/1 代码。计算机只能识别 0 和 1。在计算机内部,无论是一部电影还是一首歌曲或是一张图片,最终保存的都是 0/1 代码,因为 CPU 只能执行 0/1 代码。那么这是不是就意味着我们编程一定要用 0/1 代码呢?
首先这么编写肯定是可以的,但是这样太麻烦,而且很不好理解,所以后来就出现了汇编语言。
汇编语言就是将一串很枯燥无味的机器语言转化成一个英文单词。比如说:
add 1, 2;
add 就是一个英文单词,这样看起来就稍微有一些含义了,即 1 和 2 相加。这个就是汇编语言。
如果直接用机器语言编写的话,这几乎是无法实现的。因为用机器语言太难记忆了,也没人能看得懂。所以后来就设计出了第二种语言,即将 0/1 代码翻译为英文单词,这些英文单词直接对应着一串 0/1 指令。这个就是汇编语言。
通过专门的软件就可以将这些英文单词转化成 0/1 代码并由计算机执行,这种专门起翻译的作用的软件叫作编译器。
这些英文单词和与它们对应的 0/1 代码之间的对应关系,以及语言的语法,在编写这个软件的时候就已经写在里面了。我们只要通过编译器就可以将这些都转化成 0/1 代码。这样大大方便了我们对程序的编写。
汇编语言之后又出现了第三代语言。第三代语言又叫“高级语言”。高级语言的发展分为两个阶段,以 1980 年为分界线,前一阶段属于结构化语言或者称为面向过程的语言,后一阶段属于面向对象的语言。
什么叫面向过程,什么叫面向对象?这是很难解释的一个问题,所以这个问题大家现在先不要考虑。等到将来你们学完C语言、C++、Java 或者 C# 之后才有可能理解。因为这个需要比较。
总之,面向过程语言中最经典、最重要的就是C语言。Fortran、Basic 和 Pascal 语言基本上已经很少有人使用了。但是C语言一直在用,因为C语言是计算机领域最重要的一门语言。但是C语言也有缺陷,它的缺陷只有在学完面向对象语言之后才能体会到。
所以从 20 世纪 80 年代开始又产生了另外一种“以面向对象”为思想的语言,其中最重要、最复杂的就是 C++。C++ 从易用性和安全性两个方面对C语言进行了升级。C++ 是一种较复杂、难学的语言,但是一旦学会了则非常有用。
因为 C++ 太复杂,所以后来就对 C++ 进行了改装,产生了两种语言,一个是 Java,另一个是 C#。
Java 语言是现在最流行的语言之一。C# 则是微软公司看 Java 很流行而写的一个与 Java 语法相似的语言。因为 Java 和 C# 几乎是一模一样的,所以你只需要学习其中的一种语言就可以了。
计算机语言越是低级速度就越快,因为越低级就越符合计算机的思维。所以计算机语言中执行速度最快的是机器语言,汇编语言其次,高级语言的速度最慢。高级语言中C的速度最快,C++ 其次,最慢的是 Java 和 C#。
Java和C#虽然速度慢,但它们在任何机器上都可以运行,而且运行结果一模一样,这是它们的一个优点,也是它们流行的原因之一。