Ruby to C?

Okay, I’m working an a robotics project and instead of using C could I
actually write it in ruby then convert it into C code?

Mohammad — wrote:

Okay, I’m working an a robotics project and instead of using C could I
actually write it in ruby then convert it into C code?

If you mean convert automatically, no, not really. Not unless what you
write
in Ruby is very generic, and you don’t use any of C’s distinct
properties.
If that were true, converting to C would have little point.

Why do you think you need to convert to C? For speed? I have written a
number of projects in Ruby because the development time is so short,
then,
after establishing the design, I converted to a faster language. But the
conversion was by no means easy.

So in essence I took advantage of the prototyping speed of Ruby, then I
went
after the execution speed of another language. But I didn’t seriously
expect to be able to automatically translate between languages.

Here is an example of a physics simulation program I wrote in Ruby, then
converted to C++:

http://www.arachnoid.com/ruby/gravity/index.html

On Nov 9, 2006, at 2:10 AM, Paul L. wrote:

If that were true, converting to C would have little point.
Not quite accurate. Depending on what you’re doing ruby2c might work.
Given that it is a robotics program, we’re generally talking fairly
boring prorgamming anyhow. It might be translatable with ruby2c,
possibly even without much work.

Why do you think you need to convert to C?

Presumably so he can download the program to the robot and ruby
doesn’t run there.

For speed? I have written a
number of projects in Ruby because the development time is so
short, then,
after establishing the design, I converted to a faster language.
But the
conversion was by no means easy.

There are several much easier ways to make your ruby fast. Usually
keeping most everything ruby. Full ports are my absolute LAST option.

I’ve had very good success with Dominik’s ruby2c compiler:

http://rubyforge.org/projects/ruby2cext/

I use his CVS version and can get 1-5X speedups. It handles most ruby
code
you throw at it and maintains the full semantics.

Why do you think you need to convert to C?

Presumably so he can download the program to the robot and ruby
doesn’t run there.

Mohammad, are you downloading the program to a hardware robot or are you
simply doing complex matrix operations for robot simulations(which can
be
done in any language but certain educational institutes insist on C).

Regards,

  • vihan

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs