1. 程式人生 > >編譯原理:引論

編譯原理:引論

教材 低級語言 程序 quest mce 語言翻譯 後端 高級 del

閱讀的教材為:編譯原理(張素琴等編著,清華大學出版社)

編譯過程就是將高級語言翻譯為低級語言

編譯過程分為前段(front end)和後端(back end)

閱讀過程中遇到的疑問是:解釋程序和編譯程序的區別?

1、編譯程序直接生成目標代碼,解釋程序在運行時才將中間代碼編譯成目標代碼。故執行效率低

2、編譯過程生成的目標代碼,逆翻譯難度非常大,基本不可能。解釋程序只是將程序生成為中間代碼,易讀,相當開放源碼。故無保密性

3、編譯過程從中間代碼到目標代碼需要考慮到不同系統,相反解釋程序只是翻譯到中間代碼,執行過程中可根據不同系統做後續編譯。故跨平臺

4、為了便於用戶調試和修改程序,又能保證程序高效運行,很多程序設計語言配置兩個加工系統,一個用於調試,一個用於有效地運行。故調試效率高

聯想到,python為什麽效率相對低,是不是因為解釋程序,然而並不是?

引:像Python這樣就不好分了,可以直接解釋源代碼運行,也可以編譯為虛擬機指令然後再運行。

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

編譯原理:引論