编译器简要介绍
一、语言的翻译
复杂就是将简单的事情重复一万遍
计算机只能识别简单的0-1串,高低电平控制着计算机内部各种简单的寄存器、逻辑门、触发器完成对应的功能,然后,这些寄存器、逻辑门、触发器会以不同的组合方式重组为更复杂的功能硬件。这个过程一再重复,最终生成了复杂的计算机芯片,如CPU、内存芯片等。
可是,0-1串只是计算机的语言,它并不符合人类的思维习惯。
为了解决这个问题,有人想出了一个办法:把各种特定的0-1串与单词联系在一起,组成一个映射表,如果我们输入某个单词,便会启动一个简单的程序将它翻译为映射表中对应的0-1串。这些“单词”就是助记符,这个“简单的程序”就是汇编器。
然而这些助记符只是特定0-1串的别名,芯片内部最微不足道的一次操作,如修改寄存器的值、给数据分配内存区域,都需要我们自己动手。
汇编并没有把人类从繁重的细节中拯救出来,它只是让不易理解的0-1串好记了点,仅此而已。
但人类天生就是爱征服的,为此他们又发明了各类高级语言。
高级语言的出现真正是计算机发展史上的一个重要里程碑,它拥有自己的一套词法、语法和语义,就像自然语言一样完善。它只关注怎么做,而把具体的细节交给编译器来承担。比如,我说“上天”,编译器会解析这条指令,然后根据含义帮我把飞机组装好,油加满,然后点燃发动机一飞冲天,我只看到了“上天”这个结果,而不知道到底是怎么上天的。
一条简单的高级语言指令往往对应着几十甚至几百条的汇编指令,编译器即是这两者之间的一座桥梁。
那么现在我们有了最底层的0-1串、汇编语言和高级语言,如何完成语言的翻译,这正是编译原理回答的问题。
编译是指高级语言转换为汇编语