中央处理器@CPU是怎么看懂代码的?( 二 )


怎么办?
其实 , 早在高级语言出现之前的汇编语言时代 , 聪明的计算机研发人员就开发出了专门的程序 , 用来将汇编语言和高级语言翻译成机器语言 , 其过程相当于将英语名著翻译成汉语著作 。
说白了 , 这种翻译程序相当于人类中的翻译家 。
翻译程序有两种工作方法:编译和解释 , 相应的程序名称是编译器和解释器 。 两者的区别是 , 编译是在执行前把整个源程序(高级语言程序)翻译成目标程序(机器语言程序) , 而解释是一次只翻译和执行源程序中的一行 。

中央处理器@CPU是怎么看懂代码的?
本文插图

打个形象的比方 , 解释器相当于发布会的实时翻译 , 演讲的嘉宾说一句 , 实时翻译马上翻译一句 。 编译器则相当于著作翻译家 , 整本翻译完成后 , 再让出版社印刷上市 。
经过翻译程序的努力 , 现在CPU能看懂程序员写的程序了 。 当然 , 用开头提到的文言文编程语言编写的程序想要让CPU看懂 , 还得多一道翻译步骤 , 即要么翻译成Javascript , 要么翻译成Python 。 多转了一圈 , 不知道程序执行效率如何 。
由于CPU不能直接理解用高级语言写成的代码 , 必须依赖翻译程序翻译成机器语言 , 因此翻译程序可以极大地影响甚至决定处理器性能的发挥 。 如果没有一个好的翻译程序 , 那么CPU的性能再强大 , 也好比茶壶装的饺子 , 倒不出来 。
正因为如此 , 谷歌在安卓4.4之后 , 抛弃了Dalvik虚拟机 , 改为ART , 实际是将翻译程序从解释器切换到编译器 , 发挥了芯片的性能 , 提高了程序运行效率 。
现在 , 手机大厂包括华为、OPPO和vivo都开始重视编译器开发 , 说到底就是为了发挥芯片性能 , 让它不再成为倒不出饺子的茶壶 。
最后总结一下 , 用翻译程序把程序员编写的程序翻译成二进制代码的机器语言后 , CPU就能看懂代码了 , 而且翻译程序的优劣可以影响乃至决定CPU性能发挥 。
图片源自网络 , 版权归图片作者所有 。


推荐阅读