-1

編程語言是否有解釋器和編譯器? 如果是的話,怎麼樣?RUBY中的編譯器和解釋器

**我認爲Ruby有編譯器和解釋器**

感謝

+2

可能的重複[是否Ruby真的是一種解釋語言,如果它的所有實現都編譯成字節碼?](http://stackoverflow.com/questions/717490/is-ruby-really-an-interpreted-language-if -all-of-its-implementation-are-compiled) – Chuck 2011-04-26 22:56:10

回答

1

一些語言既可以編譯成特定於平臺的運行時可執行文件和解釋。例如,Ruby可以被多個解釋器,本機ruby,ree等解釋,也可以被JRuby「編譯」爲本機java代碼(這不完全是本機可執行文件)。

+0

或OCaml,它通常編譯爲字節碼或本地機器碼。 – Amadan 2011-04-27 06:46:36

4

當然,你可以兼得。除了Java,Python和現在的Ruby的明顯例子之外,如果你真的想的話,可能爲編寫一個本地編譯器。我認爲那裏有一個糟糕的Ruby編譯器。相反,你也可以爲C編寫一個解釋器,我認爲這裏有一些解釋器。

爲什麼像Ruby這樣的動態語言難以編寫編譯器併爲C使用解釋器存在技術上的原因,這就造成了C語言比Ruby編程語言的主要優勢。這並不意味着它不能完成。

簡而言之,您可以編寫任何語言和平臺(本機或虛擬機)的編譯器或解釋器,或者您可以獲得或編譯出規範。