0

すべてのRubyインタープリターは、www.ruby-lang.orgで定義されているのと同じRuby構文に従いますか?

  • MRI
  • YARV
  • ルビニウス
  • JRuby
  • IronRuby

Ruby言語を定義するのはインタプリタだからです。つまり、1人の通訳者が、他の通訳者にはない機能/糖衣構文を追加できるということですか?

その場合、すべてのインタープリターは独自のAPIドキュメントを持っていますか?

私が使用している原因:http://ruby-doc.org/ruby-1.9/index.html

どのインタプリタがそれを実装していますか?

誰かがこのトピックに光を当てることができますか?

ありがとう!

4

2 に答える 2

3

すべてのRubyインタープリターは、www.ruby-lang.orgで定義されているのと同じRuby構文に従いますか?

はい、それらはすべて同じ構文を使用します。実際、それらはすべて同じパーサー、または少なくとも同じソースファイルから自動的に生成されたパーサーを使用します。

私が使用している原因:http://ruby-doc.org/ruby-1.9/index.html

どのインタプリタがそれを実装していますか?

現時点では、Ruby1.9を完全に実装する本番環境に対応したRuby実行エンジンはYARVのみです。

JRuby自体は本番環境に対応しており、Ruby1.8.7とRuby1.9.2の両方を実装していますが、Ruby1.9.2の実装はまだ完了していません。IronRubyとRubiniusは、Ruby1.9.2の実装にも取り組んでいます。MacRubyにはかなり完全なRuby1.9の実装がありますが、それでも1.0リリースにはほど遠いです。MRIはRuby1.9を実装しておらず、おそらく実装することはありません。

しかし、なぜあなたが構文についてそれほど心配しているのか理解できません。構文の違いを見つけるのは簡単です。構文に違いがある場合エンジンはファイルの解析を拒否するだけで、何か問題があることがすぐにわかります。一方、セマンティクスの違いははるかに危険です。

于 2010-09-06T15:03:27.100 に答える
0

「シンタックスシュガー」のどの部分を指しているのですか?

rubyには非常に少数のキーワードセットがあることに注意してください。最初はキーワードのように見える多くのものが、実際にはカーネルによって実装されています(たとえば、、、require)。putsraise

http://apidock.com/ruby/Kernel

于 2010-09-13T04:55:07.860 に答える