Pregunta

¿Todos los intérpretes de Ruby siguen la misma sintaxis de Ruby se define en www.ruby-lang.org?

  • RM
  • YARV
  • Rubinius
  • JRuby
  • IronRuby

Porque es el intérprete que define el lenguaje Ruby. Hace que una intérprete media podría añadir un azúcar función / sintáctico que otros intérpretes no tienen?

Si ese es el caso, hacer todos los intérpretes tienen su propia documentación de la API?

Porque yo estoy usando: http://ruby-doc.org/ruby -1.9 / index.html .

¿Qué intérpretes que están implementando uno?

¿Puede alguien arrojar luz sobre este tema.

Gracias!

¿Fue útil?

Solución

  

¿Todos los intérpretes de Ruby siguen la misma sintaxis de Ruby se define en www.ruby-lang.org?

Sí, todos ellos utilizan la misma sintaxis. De hecho, en realidad todos utilizan el mismo analizador, o por lo menos un programa de análisis que se genera automáticamente a partir del mismo archivo fuente.

  

Porque yo estoy usando: http://ruby-doc.org/ruby -1.9 / index.html .

     

¿Qué intérpretes que están implementando uno?

Por el momento, el motor de ejecución de Rubí única lista para producción que implementa Ruby 1.9 es totalmente YARV.

JRuby sí es listo para la producción, y se implementa tanto de Ruby y Ruby 1.8.7 1.9.2, pero la implementación de Ruby 1.9.2 aún no es completa. IronRuby y Rubinius también están trabajando en implementaciones de Ruby 1.9.2. MacRuby tiene una aplicación bastante completa Ruby 1.9, pero todavía está lejos de ser una versión 1.0. La RM no implementa Ruby 1.9 y probablemente nunca lo hará.

Pero no entiendo por qué están tan preocupados por la sintaxis. diferencias de sintaxis son triviales de detectar: ??si hay estaban una diferencia en la sintaxis, el motor simplemente se niegan a analizar su archivo y usted sabe inmediatamente que algo anda mal. Las diferencias en semántica en el otro lado son mucho más peligroso.

Otros consejos

Qué poco de "azúcar sintáctica" se está refiriendo?

Tenga en cuenta que el rubí tiene un pequeño conjunto de palabras clave. Un montón de cosas que parece ser una palabra clave en un primer momento se llevan a la práctica por el kernel (por ejemplo require, puts y raise).

http://apidock.com/ruby/Kernel

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top