Re: [問題] .class 能否反向編譯

看板java作者 (專題無敵操...)時間18年前 (2006/05/26 03:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/7 (看更多)
※ 引述《zhim (zhim)》之銘言: : 想把 *.class 還原成 *.java : bytecode 為 platform independent : 猜想其對應 應該蠻單純的 : 不知是否有人已經開發此類工具 ? 以前抓到的某個檔案...有題到這個東西 希望對你的問題有幫助 原作者網址: http://www.caterpillar.onlyfun.net/phpBB2/ * 米小國 * 奇想世界☆.╯ Gossip of Algorithm Examples - 自產生程式(quine) -------------------------------------------------------------------------------- caterpillar - 星期四 六月 10, 2004 5:34 pm 文章主題: 自產生程式(quine) 自產生程式(quine)就是要寫一個程式,這個程式的目的就是描述它自己,簡單的說, 如果您寫了一個.java,編譯它後產生一個.class檔,然後您將.java檔案刪除,您的 .class檔不需要.java檔,它也可以印出.java檔的內容。 根據計算理論(Computation Theorem)遞迴原理,任何的程式語言都可以簡單的寫出自 產生程式。簡單指的是寫出自產生程式並不需要特別的算法,只要利用Turing Machine的 擴充多帶Turing Machine的操作原理就可以寫出。 撇開計算理論這看似高深的學科不談,我們用一般的解釋來說明如何寫自產生程式,程式 分做A、B兩個部分,A部分描述B部分的功能,B部分則負責將A的描述印出來,A似乎必須 倚賴建構好的B,但B要有A才能列印,這看似矛盾,但其實不然,做法是將B編碼,放置在 不同的字元帶上,幾個字元帶並不是重點,看程式語言的語法而定,您可能需要多幾個帶 ,或少幾個帶,編碼好之後,A部分完成,開始進入B部分,B部分不斷在多個字元帶上來 回,並挑選出字元並顯示出來。 下面是以前在網路上找到的C程式,原作者名我忘了保留了,知道的請告訴我一聲,C程式 可以用指標,加上一些特性,以及不考慮縮排,這使得程式寫來時更加簡短: #include<iostream.h> char*a="\"\\char*a=", *b="#include<iostream.h>", *c="main(){cout<<b<<endl<<a+2<<*a<<a[1]<<*a<<a[1]<<a[1]<<a+2<<*a<<','<<'*'<<'b' <<'='<<*a<<b<<*a<<','<<'*'<<'c'<<'='<<*a<<c<<*a<<';'<<c<<endl;}"; main(){cout<<b<<endl<<a+2<<*a<<a[1]<<*a<<a[1]<<a[1]<<a+2<<*a<<','<<'*'<<'b'<< '='<<*a<<b<<*a<<','<<'*'<<'c'<<'='<<*a<<c<<*a<<';'<<c<<endl;} 下面這個網址有各種語言的自產生程式之實現: http://www.nyx.org/~gthompso/quine.htm -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.125.189.16
文章代碼(AID): #14TWd_cY (java)
討論串 (同標題文章)
文章代碼(AID): #14TWd_cY (java)