2010-09-06 16 views
0

Est-ce que tous les interprètes Ruby suivent la même syntaxe Ruby définie dans www.ruby-lang.org?Est-ce que tous les interprètes Ruby suivent la même syntaxe Ruby?

  • IRM
  • YARV
  • Rubinius
  • JRuby
  • IronRuby

Parce que c'est l'interprète qui définit le langage Ruby. Cela signifie-t-il qu'un interprète pourrait ajouter une caractéristique/un sucre syntatique que les autres interprètes n'ont pas?

Si tel est le cas, tous les interprètes ont-ils leur propre documentation API? Cause J'utilise: http://ruby-doc.org/ruby-1.9/index.html.

Quels sont les interprètes qui implémentent celui-là?

Quelqu'un pourrait-il faire la lumière sur ce sujet?

Merci!

Répondre

3

Est-ce que tous les interpréteurs Ruby suivent la même syntaxe Ruby définie dans www.ruby-lang.org?

Oui, ils utilisent tous la même syntaxe. En fait, ils utilisent tous le même analyseur, ou au moins un analyseur qui a été généré automatiquement à partir du même fichier source. Cause J'utilise: http://ruby-doc.org/ruby-1.9/index.html.

Quels sont les interprètes qui implémentent celui-là? À l'heure actuelle, le seul moteur d'exécution Ruby prêt à la production qui implémente entièrement Ruby 1.9 est YARV. JRuby est lui-même prêt pour la production, et il implémente à la fois Ruby 1.8.7 et Ruby 1.9.2, mais l'implémentation de Ruby 1.9.2 n'est pas encore terminée. IronRuby et Rubinius travaillent également sur les implémentations de Ruby 1.9.2. MacRuby a une implémentation assez complète de Ruby 1.9, mais elle est encore loin d'une version 1.0. L'IRM n'implémente pas Ruby 1.9 et ne le fera probablement jamais.

Mais je ne comprends pas pourquoi vous êtes si préoccupé par la syntaxe. Les différences de syntaxe sont triviales à repérer: si était une différence dans la syntaxe, le moteur refuserait simplement d'analyser votre fichier et vous sauriez immédiatement qu'il y a quelque chose qui ne va pas. Les différences en sémantique d'autre part sont beaucoup plus dangereuses.

+0

Mais j'ai besoin de savoir ce que la syntaxe et la langue de sucre syntactique je devrais suivre. Tous les tutoriels là-bas, quel interprète utilisent-ils? J'ai fait "rvm install 1.9.2-head". Quel interprète est utilisé? –

+0

Btw, n'est pas interprète de fait de MRI Ruby? Pourquoi ne supporterait-il pas 1.9.2 alors? Il est construit pour le lire correctement? –

0

De quel «sucre syntactique» parlez-vous? Gardez à l'esprit que ruby ​​a un très petit ensemble de mots-clés. Beaucoup de choses qui semblent être un mot-clé au début sont réellement implémentées par le noyau (par exemple require, puts, et raise).

http://apidock.com/ruby/Kernel