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

01 - 机器只认识 0 和 1,那我们怎么办?

在讲「语言怎么诞生」之前,我们得先想明白一件残酷的事:机器其实什么语言都不会。

机器的世界里只有开和关

你可以把 CPU 想象成一大堆微型的电灯开关。每个开关只有两种状态:通电(1)、断电(0)。CPU 能做的所有事情,本质上都是在按某种规律拨这些开关。

所以对机器来说,一段程序长这样:

10111000 00000001 00000000
00000101 00000010 00000000

这一串 0 和 1,就是机器码——机器唯一真正「听得懂」的东西。上面这几行的意思大概是「把数字 1 放进某个位置,再加上 2」。

注意:机器根本不认识 ifforprint 这些词。它只认识 0 和 1。你写的所有代码,最终都得变成这种一长串的 0 和 1,机器才肯干活。

那早期的人是怎么编程的?

答案很朴素:真的就一个一个 0、1 地敲。

最早的程序员要对着手册,查出每个操作对应的二进制编码,然后手动把一长串 0 和 1 输进机器。这有多痛苦:

  • 记不住:几百种操作,每种都是一串数字,全靠死记硬背和翻手册。
  • 易出错:一长串 0 和 1 里,错一位,整个程序行为全变,还极难看出错在哪。
  • 不可读:过两天回来看自己写的东西,完全不知道它在干嘛。
  • 换台机器就废了:不同型号的 CPU,同一件事对应的 0/1 编码还不一样。

想想看,就为了让机器「把 1 加上 2」,你得先变成一个能背出机器码手册的人肉查表机。这显然没法长久。

于是人们冒出一个念头

大家很快意识到:人脑擅长的是「有意义的词」,机器擅长的是「0 和 1」,这两者之间差得太远了。

那能不能在中间加一个「翻译」?

  • 我用接近人话的方式把想法写出来(比如写个 add 1, 2,甚至 1 + 2);
  • 再让某个程序,帮我把这段「人话」翻译成机器认识的 0 和 1。

这个想法,就是编程语言存在的全部理由

这也是我们整套教程的主线:编程语言的本质,是一座架在「人话」和「机器话」之间的翻译桥。

语言负责让你写得舒服,翻译负责让机器跑得起来。剩下所有章节,都是在讲这座桥的各个部分。

小结

  • 机器只认识 0 和 1(机器码),它不懂任何单词。
  • 早期直接手写 0 和 1,记不住、易出错、不可读、换机器就作废,苦不堪言。
  • 根源在于:人擅长「有意义的词」,机器擅长「0 和 1」,两边差太远。
  • 于是人们想在中间加一层「翻译」——这就是编程语言诞生的理由。
  • 下一章我们看看,这座「翻译桥」是怎么从简陋一步步进化到今天这么好用的。

下一章 → 02 - 语言的进化:从「记地址」到「说人话」 | 回到 README 目录