代码翻译成机器能够看懂的二进制指令……”
程远缓缓地讲着,他的思绪渐渐飘远。
——
最开始,人们在计算时,只是使用手指,绳结和石头。后来,人们明了简单的算盘和复杂的齿轮,帮助数学家们进行各种各样的运算。
然而,齿轮的转动度是缓慢的,人们的加工精度是有限的。当需要处理复杂的运算时,即使是最好的工匠也没办法加工出满足要求的齿轮,地球位面史上,曾经的一位“机械计算机”明者就因此抱憾而终。
然而后来,人们现,如果使用一些特定的工艺,对一些被称为“半导体”的材料进行加工的话,就可以在其中产生一种被称为“n结”的结构。
当然,不了解这个“n结”的原理并不要紧,我们只需要知道,曾经的人们使用这个n结,明了二极管和三极管。
当然,不了解二极管和三极管的原理也不要紧,我们只需要知道,曾经的人们使用二极管和三极管,组合出了与或非等逻辑门电路。
当然,不了解逻辑门的原理也不要紧,我们只需要知道,工程师们使用一个个的逻辑门,制作出了各种各样的芯片。这些芯片中,有的能够进行加减运算,有的能够进行乘除,有的能够对输入的信号进行判断……
虽然,这些芯片只能使用一串串的高低电压,或者说二进制的“o”和“1”作为输入与输出,但是这就足够了。
终于有一天,工程师们明了这样的一种芯片
它可以接收最少两个二进制数字,一个“操作指令类型”的信号,并输出一个数字。
如果这个“操作指令”是加法,那么这个芯片便对接收的两个数字进行加法运算,并输出计算结果。
如果这个“操作指令”是乘法,那么这个芯片便对接收的两个数字进行乘法运算,并输出计算结果。
如果这个“操作指令”是比较大小,那么这个芯片便返回两个数字的比较结果……
工程师们为这个芯片设计了几十上百种可以支持的操作指令。除此之外,工程师们还在这个芯片的旁边安装了各种各样的,由电容或者磁铁粉制作而成的“存储器”,这些存储器可以为芯片输入信号,或者存储芯片输出的数值。
随后,工程师们开始在纸带上打孔。纸带上的每一段,都对应着芯片需要执行的一行指令。
最终,整个系统被组合。一条条纸带从识别孔洞的机器中划过,一电脉冲忠实地将扫描到的指令存入存储器。随后,一个由信号构成的“箭头”便可以从第一条指令开始,逐条地向芯片传递它所指向的指令。有时,这个箭头会听从芯片的命令,向前跳跃一段距离或是向后退两步,或者在小范围内转上几圈……不过一般情况下,它都能够到达最终的目的地。而在那时,工程师们想要计算的复杂公式的运算结果,已经安安稳稳地躺在存储器中了。
这个多功能的芯片,便是人们常说的cu,而那一摞摞能够铺满整个地面的纸条,便是早期的计算机程序。
——
“大概的情况就是这样吧。”程原一边指着屏幕中的一行行如同天书一般的符号一边介绍道“但是,一般人很难看得懂cu直接使用的机器指令。因此,人们明了各种各样的高级语言,然后再用编译器将这些高级语言转换为汇编指令和机器指令,这样就方便得多啦。”
“原来如此。”团团似懂非懂“那……编译器是用什么语言写的呢?”
“嗯,现在的大部分语言的编译器都是用‘c语言’写的。”程原想了想后,表情古怪地抛出了这样的一个回答。
“那c语言的编译器又是用什么语言写的呢?”一旁的大熊想了想后也提了一个问题。
“c语言的编译器是用c语言写的。”程原满意地笑了笑,果然