導航:首頁 > 源碼編譯 > 編譯工作的五個階段

編譯工作的五個階段

發布時間:2025-06-15 02:05:04

1. 什麼是java代碼的編譯與反編譯

Java代碼的編譯與反編譯

2017-02-21Hollis數盟

一、什麼是編譯

1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。

2、用編譯程序產生目標程序的動作。編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。

二、什麼是反編譯

計算機軟體反向工程(Reverseengineering)也稱為侍梁計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。

三、Java類的編譯與反編譯

我們在最初學習Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。

class文件打破了C或者C++等語言所遵循的傳統,使用這些傳統語言寫的程序通常首先被編譯,然後被連接成單獨的、專門支持特定硬體平台和操作系統的二進制文件。通常情況下,一個平台上的二進制可執行文件不能在其他平台上工作。而Javaclass文件是可以運行在任何支持Java虛擬機的硬體平台和操作系統上的二進制文件。

那麼反編譯呢,就是通過helloworld.class文件得到java文件(或者說是程序員能看懂的Java文件)

四、什麼時候會用到反編譯

1、我們只有一個類的class文件,但是我們又看不懂Java的class文件,那麼我們可以把它反編譯成我們可以看得懂的文件。

2、學習Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現細節,我們可以藉助反編譯。

五、反編譯工具

1、javap

2、Jad:官網(牆裂推薦)

客戶端:

可以在官網下載可執行文件,找到對應的操作系統的對應版本,然後進行安裝使用。

因為我使用的是linux操作系統,所以我下載的是Linux版本的工具,這個工具下載好之後會有一個執行文件,敗吵只要在執行文件所在目錄執行./jadhelloworld.class就會在當前目錄下生成helloworld.jad文件,該文件里就是我們很熟悉的Java代碼

Eclipse插件:

下載地址在官網下載插件的jar包,然後將jar包放到eclipse的plugins目錄下『在打開Eclipse,Eclipse->Window->Preferences->Java,此時你會發現會比原來多了一個JadClipse的選項,單擊,在Pathtodecompiler中輸入你剛才放置jad.exe的位置,也可以制定臨時文件的目錄。當然在JadClipse下還有一些子選項,如Debug,Directives等,按照默認配置察談侍即可。基本配置完畢後,我們可以查看一下class文件的默認打開方式,Eclipse->Window->Preferences->General->Editors->FileAssociations我們可以看到class文件的打開方式有兩個,JadClipse和Eclipse自帶的ClassFileViewer,而JadClipse是默認的。全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按F3即可查看源碼

2. 編譯和譯有什麼區別

譯表示直譯,原來表達的什麼意思就翻譯成什麼意思,編譯表示經過翻譯者的稍微加工,把原來作者的意思加以潤色、組織再表達出來的文字。

3. C編譯程序的工作過程可以劃分為哪五個階段

【答案】:C
編譯程序的工作過程一般劃分為五個階段:詞法分析、語法分析、語義分析、優化、目標代碼生成。( 1 )詞法分析:也就是從左到右一個一個的讀入源程序,識別一個單詞或符號,並進行歸類。( 2 )語法分析: 在詞法分析的基礎上,將單詞序列分解成各類語法短語,如「程序」,「語句」,「表達式」等。( 3 )語義分析:審查源程序是否有語義的錯誤,當不符合語言規范的時候,程序就會報錯。( 5 )代碼優化:這個階段是對前階段的中間代碼進行變換或改造,目的是使生成的目標代碼更為高效,即節省時間和空間。 ( 6 )目標代碼生成:也就是把優化後的中間代碼變換成指令代碼或匯編代碼。 詞法分析和語法分析本質上都是對源程序的結構進行分析。

閱讀全文

與編譯工作的五個階段相關的資料

熱點內容
軟體測試技術pdf 瀏覽:690
口袋妖怪白金壓縮包 瀏覽:728
母親緩解壓力的利器 瀏覽:323
奶油臉的特效是哪個app 瀏覽:45
高階導數簡便演算法 瀏覽:289
可愛的程序員電視劇全集免費觀看 瀏覽:265
電腦看文件夾需要下載什麼軟體 瀏覽:654
高三自我解壓教程 瀏覽:210
linuxphp參數 瀏覽:740
視圖預編譯sql 瀏覽:143
安卓編程要用什麼配置的電腦 瀏覽:339
壓縮工具為什麼解壓不了 瀏覽:303
06年之前的程序員 瀏覽:629
靜態編譯和誤報毒哪個大 瀏覽:245
3d列印演算法工程師都做些什麼 瀏覽:386
程序員那麼可愛電視劇男女主離婚 瀏覽:981
php綁定微信 瀏覽:532
ln的運演算法則前面有數字 瀏覽:89
伺服器通話記錄如何刪除 瀏覽:732
盒子文件夾放哪 瀏覽:816