首页 > 代码库 > 编译原理:引论

编译原理:引论

阅读的教材为:编译原理(张素琴等编著,清华大学出版社)

编译过程就是将高级语言翻译为低级语言

编译过程分为前段(front end)和后端(back end)

阅读过程中遇到的疑问是:解释程序和编译程序的区别?

1、编译程序直接生成目标代码,解释程序在运行时才将中间代码编译成目标代码。故执行效率低

2、编译过程生成的目标代码,逆翻译难度非常大,基本不可能。解释程序只是将程序生成为中间代码,易读,相当开放源码。故无保密性

3、编译过程从中间代码到目标代码需要考虑到不同系统,相反解释程序只是翻译到中间代码,执行过程中可根据不同系统做后续编译。故跨平台

4、为了便于用户调试和修改程序,又能保证程序高效运行,很多程序设计语言配置两个加工系统,一个用于调试,一个用于有效地运行。故调试效率高

 联想到,python为什么效率相对低,是不是因为解释程序,然而并不是?

引:像Python这样就不好分了,可以直接解释源代码运行,也可以编译为虚拟机指令然后再运行。

引:https://www.zhihu.com/question/21486706  余天升 回答

编译原理:引论