2016-06-10 51 views
0

我開始在codecademy上進行ruby編程,但是我可以在哪裏編譯我的代碼來完成一個網站? 當我在C上學習一些課時,我使用了代碼塊來運行代碼。我知道任何文本編輯器都可以運行HTML代碼。那麼紅寶石呢?
謝謝。我可以在哪裏編譯我的ruby代碼?

+1

[How to compile Ruby?](http://stackoverflow.com/questions/5902334/how-to-compile-ruby) –

+0

儘管提問者使用「compile」這個詞,但似乎可能是這樣的由於還不知道Ruby是否被正常解釋,這只是一個糟糕的詞選擇。出於這個原因,我認爲這個問題不是提名範例的恰當副本。 –

回答

0

我會刺探回答我所問的這個問題,但我不是100%確定的。如果你想更深入地討論解釋和編譯之間的區別或缺乏,請閱讀下面的Jorg的評論。)Ruby是一種解釋型語言(這是什麼意思?現在並不是很多。要執行ruby代碼,你需要安裝ruby。幸運的是,您可以在任何主要平臺上免費使用該功能。如果你使用的是unix-y(例如linux或mac),我強烈建議通過像rvm或rbenv這樣的東西來安裝ruby。如果你在windows上,你可以去cygwin路線並假裝它是一個unix-y環境,或者有預建的安裝程序。谷歌搜索'安裝紅寶石'應該有一些網站,可以幫助你在或接近搜索結果的頂部。

+0

沒有這樣的東西作爲「解釋型語言」。語言是一組抽象的數學規則和限制。語言不被解釋或編譯。他們只是*。解釋和編譯是解釋者或編譯者的特徵,而不是語言。每種語言都可以編譯,每種語言都可以被解釋。大多數語言都有編譯和解釋實現。實際上大多數現代語言實現都在同一個實現中使用。例如:所有目前維護的Ruby實現都有一個編譯器。 –

+1

雖然你所說的是準確的,但我發現這個區別對大多數情況來說都是有用的。 Ruby最常見的用法是直接傳遞給解釋器,解釋器然後執行代碼,相比之下,像C這樣最常見的用法是先編譯,然後生成的二進制文件被執行。雖然這些*都不是你使用這些語言的方式,但它們是最常見的範例。 OP可能有一天需要了解你指出的區別,但我不認爲今天是那一天。 –

+0

Ruby是最常見的用法,直接傳遞給*編譯器*,而不是解釋器。該編譯器的*輸出*可能會或可能不會被傳遞給解釋器,但現在沒有Ruby實現可以解釋Ruby代碼。 YARV編譯爲字節碼,然後解釋。 Rubinius編譯爲字節碼,然後解釋或編譯爲本地代碼。 JIT模式下的JRuby編譯爲JRuby IR,然後解釋或進一步編譯爲JVM字節碼。在AOT模式下的JRuby直接編譯成JVM字節碼,*就像'javac'一樣。如果Ruby是一種解釋型語言,Java也是如此。 –

相關問題