1.1.3 机器语言、汇编语言、高级语言
Last updated
Last updated
直接给计算机下一个类似于“帮我做完作业”的指令显然还停留在人类的幻想之中。
计算机可以直接执行的指令集合叫机器语言,而汇编语言 是与机器语言有强烈对应关系的一种语言。下图是机器语言和汇编语言的一个实际例子,程序的作用是输出'Hello World!'。
左边一栏是机器语言,右边两栏合在一起是汇编语言
Learning By Thinking 难度:★ 重要性:★★★
谈谈自己看到机器语言和汇编语言的感受。
可以看出,机器语言很难看懂,即可读性很差,汇编语言虽然把机器语言变成了一个一个单词组成的句子,但实际上仍然很难看懂。 此外,不同型号的CPU使用的机器语言也可能不相同,因此,机器语言/汇编语言的可移植性很差。而很差的可读性也会给程序的编写和调试增加难度。
高级语言是相对于低级语言的一个概念,一般来讲,它没有特别明确的定义,任何对用户友好且独立于硬件的语言都可以叫 高级语言 。我们平时接触到的编程语言基本都是高级语言,比如C,Pascal,Perl,Java等。
高级语言不能直接被执行,必须先被转化为机器语言,我们将在下一个章节简要介绍转化的过程。
高级语言的一条指令通常会被转化为机器语言的多条指令,例如求一个数的平方根,用机器语言写一个 求平方根的程序需要很多指令,但在大多数高级语言中,只需要一条指令就可以完成, 这种把多条指令变成一条指令的技术叫做[抽象](https://zh.wikipedia.org/wiki/抽象化_(計算機科學)) 下图是C语言和Perl语言的例子。
下边是C,上边是Perl
Learning By Thinking 难度:★ 重要性:★★★
谈谈自己看到高级语言的感受,与机器语言、汇编语言有什么不同?
显而易见,高级语言更加可读。虽然我们现在还看不懂,但还是能辨认出若干英文单词来。
高级语言大多是为了让人们更方便地编程而设计出来的,也有一些编程语言不是为此而设计的。 比如下图便展示了一种叫brainf**k的编程语言。
brainf**k,大神们的休闲娱乐方式~图片来源
Learning By Reading 难度:★★ 重要性:★★
计算机发展这么多年,编程语言也在不断变化中。 一种语言的发明通常会借鉴许多其他语言的思想。
既然编程语言有这么多,应该如何选择呢? 这里有一张有趣的图,看看就好。
总之,按照这个图的意思就是,如果你不知道学什么,那就学Python吧。