I’ve being working with computer’s for 13+ years, but I classify myself
as a good high-level (as in high abstraction) programmer, with a
business logic focus. As such I don’t have any relevant knowledge about
low level stuff, except the big picture ideas like what’s a compiler,
bytecode, process, threads, etc, I never studied the actual
implementation of those things.
Now I wish to take a dive and learn this stuff, but I’m having a hard
time finding a good global guide. I’m looking for a book, a tutorial, or
anything like that, that can explain the differences between the
architecture for a language used with a VM and another without, what’s
the impact of these choices when building a compiler, how low level
memory management works, what’s the current trend, etc.
I’ve navigated Wikipedia and Google, and started to read Jack Crenshaw’s
compiler tutorial, and though I like the hands-on approach (specially
the use of Pascal), and think that’s it’s a nice first-timer stuff, it
assumes the reader knows how to read assembly language and how to work
with stack stuff. Another thing is that it’s not designed to work with
prÃ©-8080 processors and I’m pretty sure there’s a world of differences
between that and current technologies, like multi-core processors.
I’ve also started to read Niklaus Wirth “Compiler Construction” and it’s
really, really nice, but it also assumes the reader knows a lot of stuff
that I don’t. I can understand the basics of it, but can’t understand
the details, so I need more info.
Anyway, I’m looking for a good guide to help me find my way. I’m not
planning to become a compiler expert or really understand the complex
math behind all of it, I just want to have a geek hobby and have a
understanding of what’s going on behind the curtains. If anyone can
recommend me a good companion for Wirth’s work, I’d be very happy. Stuff
in Portuguese, French or Spanish, and of course English, is welcome.
By the way, I’m asking this kind of stuff on a Ruby list because I want
to play with Ruby language stuff, so I thought it would be better to be
around the appropriate folks. I’ve even downloaded Ruby’s source but I
have no idea of where to start reading it
Thanks a lot,