Is Ruby similar to Python (excuse my
language) in the sense it is compiled to bytecode and an interpreter runs
it implicitly?
I'm not familiar with how Python works, but what you describe is
similar for Ruby: parse.y -> compile.c.
insns.def defines the YARV instructions which get parsed and
made into the main VM loop. Learning the bytecode language is
a good step towards learning a real machine assembly language
(e.g. ARM), which will in turn reinforce your understanding of C.
Any videos/articles you have on Ruby's internals would be
appreciated. I have a feeling the main documentation might be the best
choice to start but videos would be preferable.
There is no "best" overall; just "best" for you. So I don't
know if what worked for me will work for you...
I have no recommendation on videos or books; but
doc/extension.rdoc in the source tree (formerly README.EXT) is
required reading and free.
For Learning any C project: ctags or similar is helpful to jump
around, as is cflow at times.
As for learning C itself: know and understand unions well,
I consider unions quintessential to understanding C.
And integer representations and bitwise operations (but those
are in other languages).
You should already understand pointers since it's how variables
work in Ruby.
If you've used Ruby a bunch, you should already understand how
classes, modules, methods, constants relate to each other.
Those all map to the underlying relationships implemented in C.
Learn C before C++; because one is mostly a subset of the other.
C is a small language; many projects use it the same ways Ruby
does, so you'll find it easy to jump to most other C projects.
···
Robert O'Shea <robertoshea2k11@gmail.com> wrote: