Если я возьму рубиновый код
puts "Hello World!"
и перепишу его с помощью C API Ruby
#include "ruby.h"
int main() {
ruby_init();
rb_funcall(Qnil, rb_intern("puts"), 1, rb_str_new2("Hello World!"));
ruby_finalize();
return 0;
}
и скомпилируйте его, это способ компиляции кода Ruby?
Если я создам программу, которая использует Ripper
для анализа кода Ruby и переписывает его как C, я могу называть ее «компилятором Ruby» ? Есть какой-то рубиновый код, который нельзя переписать на Ruby таким образом? Неужели кто-то пробовал написать такой "компилятор" раньше?