阅读的教材为:编译原理(张素琴等编著,清华大学出版社)
编译过程就是将高级语言翻译为低级语言
编译过程分为前段(front end)和后端(back end)
阅读过程中遇到的疑问是:解释程序和编译程序的区别?
1、编译程序直接生成目标代码,解释程序在运行时才将中间代码编译成目标代码。故执行效率低
2、编译过程生成的目标代码,逆翻译难度非常大,基本不可能。解释程序只是将程序生成为中间代码,易读,相当开放源码。故无保密性
3、编译过程从中间代码到目标代码需要考虑到不同系统,相反解释程序只是翻译到中间代码,执行过程中可根据不同系统做后续编译。故跨平台
4、为了便于用户调试和修改程序,又能保证程序高效运行,很多程序设计语言配置两个加工系统,一个用于调试,一个用于有效地运行。故调试效率高
联想到,python为什么效率相对低,是不是因为解释程序,然而并不是?
引:像Python这样就不好分了,可以直接解释源代码运行,也可以编译为虚拟机指令然后再运行。
引:https://www.zhihu.com/question/21486706 余天升 回答