首页 / 知识库 / 进大厂必备计算机基础 / 一门语言是怎么诞生的

02 - 语言的进化:从「记地址」到「说人话」

上一章我们得出结论:人和机器之间需要一座「翻译桥」。但这座桥不是一天建成的,它经历了好几代进化。看懂这个进化过程,你就能理解「高级语言」到底高级在哪。

第一层遮羞布:汇编语言

既然记不住一长串 0 和 1,人们的第一个念头很自然:给每一串 0 和 1 起个好记的名字。

比如:

  • 机器码 10111000 太难记 → 就叫它 mov(搬运);
  • 某串表示「相加」的编码 → 就叫它 add

于是程序从「一串 0 和 1」变成了这样:

mov ax, 1     ; 把数字 1 放进 ax
add ax, 2     ; 给 ax 加上 2

这就是汇编语言。它本质上还是机器码,只是把难记的数字换成了好记的单词。旁边再放一个叫汇编器的小程序,负责把 movadd 这些词换回对应的 0 和 1。

汇编解决了「记不住」的问题,但还是很累:

  • 你还是得一步一步地指挥机器搬数据、算数,颗粒度极细。
  • 换一种 CPU,这套单词表又变了,程序还得重写。

汇编是「离机器很近」的语言:好记了一点,但你思考的方式,还是机器的方式。

真正的飞跃:高级语言

人们真正想要的,是能用接近自己思维的方式写程序。我想算「1 加 2」,我就想直接写:

result = 1 + 2

我根本不想关心数据被搬到了 CPU 的哪个位置、用了哪个寄存器。

于是高级语言出现了(C、Java、Python、JavaScript 都属于这一类)。它们的特点是:

  • 你用接近数学和自然语言的方式表达想法;
  • 那些「数据放哪、怎么搬」的脏活,交给翻译程序去操心;
  • 一份代码,往往能在不同的机器上跑(不用为每种 CPU 重写)。

关键的直觉:越「高级」,离人越近、离机器越远

把这几代语言排成一条线,你会看到一个清晰的规律:

机器码   →   汇编语言   →   高级语言
0 和 1       add/mov      result = 1 + 2

离机器最近                      离人最近
翻译最省事                      翻译最费劲
  • 越往右,写起来越舒服、越接近人的想法;
  • 但也正因为离机器越来越远,中间那个「翻译」要干的活就越来越重

这是个此消彼长的关系:人省下来的力气,其实是翻译程序替你扛了。

所以「高级语言」的高级,不是说它更厉害,而是说它更贴近人、把更多麻烦甩给了翻译。这也是为什么后面几章我们要重点搞懂:这个「翻译」到底是怎么工作的。

小结

  • 汇编语言:给难记的 0/1 起好记的名字(如 addmov),本质还是机器思维。
  • 高级语言:让你用接近人的方式表达想法,脏活交给翻译程序。
  • 一条规律:语言越高级,离人越近、离机器越远,翻译要做的事就越重。
  • 人省下的力气,都是翻译程序替你扛了。
  • 下一章我们换个角度:如果让你来设计一门全新的语言,你到底要设计哪些东西?

上一章 ← 01 - 机器只认识 0 和 1 | 下一章 → 03 - 设计一门语言,到底要设计什么? | 回到 README 目录