2010-04-02 79 views
1

Ruby已經存在了一段時間,所以我想知道是否有任何工作正在編譯器上完成?我知道編譯器設計受到像Eval()這樣的東西的阻礙,所以我不希望實現100%準確?我自己的搜索引起了稀疏的結果。Ruby作爲編譯語言的狀態是什麼?

+1

一個糟糕的編譯器會創建和壞JITer一樣慢的程序 - 這不是人們應該付出的努力。 – 2010-04-02 20:31:56

+0

@Unicorn〜即使是一個糟糕的編譯器也會運行一個基本的混淆器。除了執行速度之外,有很多原因需要構建編譯器,比如純粹的學者等等。 – QueueHammer 2010-04-02 21:00:59

回答

3

MacRuby提供v0.5以前的預先編譯。它使用LLVM編譯將在Objective-C運行時運行的二進制文件。

+0

我在windows上運行,首選的平臺響應我更喜歡OSX。 – QueueHammer 2010-04-15 04:33:34

0

Rubinius是Ruby的JIT編譯器。 Ruby的純編譯器永遠不會存在,因爲這種語言對於靜態編譯器來說太動態了。無論它在內部做什麼都會令人難以置信的醜陋,並且會隨着他們試圖優化它而發展爲JIT。

+1

我對Ruby不太熟悉。它是否比通常編譯的Common Lisp更加動態? – 2010-04-02 21:04:31

+0

以下是關於什麼是或不是編譯語言的一些想法。 http://stackoverflow.com/questions/376611/why-interpreted-langs-are-mostly-ducktyped-while-compiled-have-strong-typing/376828#376828 – QueueHammer 2010-04-02 21:11:49

0

還有米拉,編譯Ruby代碼爲Java字節碼:

http://www.mirah.org/

我相信你可以混淆您的代碼這種方式。