2013-10-13 36 views
-1

我讀過一篇關於BrainFuck的文章,這是一個緩慢的,用戶不友好的語言,其目標只是創建世界上最小的編譯器。根據wikipedia,他們已經將它下載到98字節爲MS-DOS。編譯器佔用多少內存空間?

這似乎令人難以置信的小,但很難想象對我來說,這是多麼的渺小。當我查看下載頁面,如Java時,文件(取決於操作系統)小到27MB。這與BrainFuck相比是相當巨大的,但是從我的理解來看,這也包括所有隨附的庫。

有沒有辦法來查找編譯器佔用的實際空間?我很想將BrainFuck與其他編譯器比如Java,C++,Assembler(也許還有一些)進行比較。

+1

一個好的開始將是編譯器二進制文件的大小(包括動態鏈接庫的大小)。 – delnan

+7

本網站不是針對一般好奇的問題。 –

+0

@RobinGreen我應該問哪裏? –

回答

1

有沒有辦法查找編譯器佔用的實際空間?

當然,下載上述編譯器並檢查它們佔用了多少磁盤空間;並且不要忘記考慮他們的依賴關係。

它可能會非常棘手的事情,如Oracle的Java編譯器,雖然,你下載的內容不僅僅是javac,它是編譯Java到Java字節碼的實際模塊。該模塊隱藏在tools.jar文件中,通過檢查它可以看到編譯器大約需要3 MB。

不過話又說回來,那編譯器是用Java編寫的,所以你必須有一些JVM +運行時庫運行;我不知道可以運行它的最小軟件包是什麼,但我猜測它至少會有幾個好的MB。

是編譯爲本地代碼,即使語言往往需要一些運行時庫(例如,the C standard library) - 它是你的電話,如果你要算那些大小。

我很想和其它編譯器,如Java,C++,彙編(也許更多)

在清單中的項目都不是編譯器比較BrainFuck。 Brainfuck,Java和C++是語言;彙編程序是將彙編語言轉換爲目標代碼的工具的通用名稱。你想要比較的是具體的實現。

在任何情況下,請記住,編譯器通常的小磁盤空間的優化 - 即使是這樣,這是一個次要的目標。此外,單獨比較編譯器就沒有多大意義 - 例如,上面的Brainfuck編譯器沒有優化可言(而Brainfuck無論如何都是極低級別的語言)。你真的可以將它與高級語言進行比較,這種語言更具表現力,並且被編譯器進行了大量優化。我沒有看到這一點。