mruby | ||
---|---|---|
Información general | ||
Tipo de programa | implementación de lenguaje de programación | |
Desarrollador | Yukihiro Matsumoto. | |
Lanzamiento inicial | 20 de abril de 2012 (12 años, 6 meses y 27 días) | |
Licencia | Licencia MIT | |
Información técnica | ||
Programado en | C | |
Estándares | ISO/IEC 30170:2012 | |
Versiones | ||
Última versión estable | 3.3.0 ( 14 de febrero de 2024 (9 meses y 3 días)[1]) | |
Enlaces | ||
mruby es una implementación del lenguaje de programación Ruby, creada con la intención de ser ligera y fácilmente integrable.[2] El desarrollo está liderado por Yukihiro Matsumoto con más de 100 colaboradores trabajando actualmente en el proyecto.
mruby 1.0 soporta la API de Ruby 2.1, pero no la librería estándar. Además de poder ejecutar código Ruby básico. También tiene un compilador bytecode y una máquina virtual integrada, en conjunto con la posibilidad de ser fácilmente integrado con programas hechos en C o C++. De manera similar a Lua o Tcl.
mruby 2.0[3] añade soporte a varios métodos de Ruby 2.x más allá de Ruby 2.1, además también se modificó el formato de instrucciones bytecode.
El bytecode de mruby puede ser integrado fácilmente en código C, y por lo tanto es posible compilarlo en un ejecutable.[4]
mruby se desarrolla para ser compatible con el estándar ISO/IEC 30170:2012.[5]
#include <stdio.h>
#include <mruby.h>
#include <mruby/compile.h>
int main(void) {
mrb_state *mrb = mrb_open();
char codigo[] = "5.times { puts 'MRuby es increible!' }";
printf("Ejecutando codigo Ruby con MRuby\n");
mrb_load_string(mrb, codigo);
mrb_close();
return 0;
}
Asumiendo que la librería y encabezados de mruby estén instalados, este programa puede ser compilado y ejecutado con los siguientes comandos en una terminal:
cc example.c -lmruby -lm -o example
./example
mruby incluye una máquina virtual mínima para ejecutar bytecode compilado con mruby, llamada RiteVM:
mrbc test.rb
mruby -b test.mrb
El primer comando compila el código Ruby en bytecode de mruby, creando un archivo llamado "test.mrb", que luego puede ser ejecutado con el intérprete usando el indicador "-b" .[6]