瑞问:“在所有编程语言出现前,我们能够编写程序吗?”
即便任何编程语言都不存在,计算机也能工作。因为从某种角度看,计算机里的CPU提供了基于其自身硬件功能的编程语言。只是这门编程语言弱点太多了,比如,只会处理“0”和“1”,这门语言编写的程序看上去就是一堆“0”和“1”的数字。人们要用这个语言来编写程序,可真的是个噩梦。
再加上,不同的CPU提供的语言完全不同。这意味着,你学会了一种CPU的语言,换一个CPU还需要重新学一门编程语言。因此,我们要发明一种与CPU无关的编程语言,比如C语言——用C语言编写程序。
瑞问:“可是,用C语言编写的程序,计算机能运行吗?”
不能,计算机并不认识用C语言编写的程序。虽然学习C语言并不轻松,但不得不承认,C语言的发明其实就是为了让人更轻松地编写程序。因为计算机里真正可以认识和执行的程序对人来讲太难了,而人说的话对计算机来讲又太难了,于是,人们发明了一门中间语言:人们经过学习相对容易掌握的语言。而计算机把C语言编写的程序翻译成计算机可以运行的程序,这个过程就叫编译。做这个工作的程序,就叫编译器。
瑞说:“这是个合理的设计,所以发明C语言的时候,一方面要尽可能让人好理解,另一方面必须考虑编译器‘翻译’起来方便。”