# A computer science book to learn about interpreter, VM etc

**URL:** <https://www.ruby-forum.com/t/a-computer-science-book-to-learn-about-interpreter-vm-etc/137034>\
**Category:** Ruby\
**Created:** [May 8, 2008, 2:06pm UTC](https://www.ruby-forum.com/t/a-computer-science-book-to-learn-about-interpreter-vm-etc/137034 "2008-05-08T14:06:16Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [May 8, 2008, 2:06pm UTC](https://www.ruby-forum.com/t/a-computer-science-book-to-learn-about-interpreter-vm-etc/137034/1 "2008-05-08T14:06:16Z")

</div>

I learned HTML and then I learned programming. Have been a JAVA  
programmer for a bunch of years and now I have been working on Rails  
for more than six months. Never worked on C though.

I am having trouble understanding this thread.  
[http://groups.google.com/group/comp.lang.ruby/browse\_thread/thread/d69165ad2b711c2c#](http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/d69165ad2b711c2c#)

But I want to understand what is being discussed. I guess I need a  
computer science book which describes what exactly interpreting means.  
Also the other day some guys were talking about ERB being interpreted  
but liquid (shopify guys) not being interpreted. I couldn’t follow  
that too. Also I can’t follow what is “Iron ruby”. I mean what does it  
mean to have ruby being ported to .NET .

Could you please refer me a book or two which explains these computer  
science fundamentals. Also note that I don’t have much background to  
build up on so please refer books which are not too _geeky_.

Thanks

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [May 8, 2008, 3:16pm UTC](https://www.ruby-forum.com/t/a-computer-science-book-to-learn-about-interpreter-vm-etc/137034/2 "2008-05-08T15:16:43Z")

</div>

-----BEGIN PGP SIGNED MESSAGE-----  
Hash: SHA1

removed\_email\_address@domain.invalid wrote:  
| I learned HTML and then I learned programming. Have been a JAVA  
| programmer for a bunch of years and now I have been working on Rails  
| for more than six months. Never worked on C though.  
|  
| I am having trouble understanding this thread.  
|  
[http://groups.google.com/group/comp.lang.ruby/browse\_thread/thread/d69165ad2b711c2c#](http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/d69165ad2b711c2c#)  
|  
| But I want to understand what is being discussed. I guess I need a  
| computer science book which describes what exactly interpreting means.

Interpreted: translated into machine code every time the source is  
executed.

Compiled: ‘Translated’ into the machine code once, and then executed  
from this object code (C) / byte code (Java) / Intermediary Language  
(.NET).

| Also the other day some guys were talking about ERB being interpreted  
| but liquid (shopify guys) not being interpreted. I couldn’t follow  
| that too. Also I can’t follow what is “Iron ruby”. I mean what does it  
| mean to have ruby being ported to .NET .

IronRuby is ‘just’ an implementation of Ruby for the .NET language  
platform (IIRC, they use C#). It is about the same as writing Ruby in C,  
and comparable to JRuby, a Ruby implementation using the Java language.  
😉

| Could you please refer me a book or two which explains these computer  
| science fundamentals. Also note that I don’t have much background to  
| build up on so please refer books which are not too _geeky_.

I think the Red Dragon Book is the de facto standard work on compiler  
theory.[0]

However, from what I know, the book as anything but non-geeky…

N.B.: This is all from a layman’s perspective, too. 😑

[0]

> **[Compilers: Principles, Techniques, and Tools](https://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools)**
>
> Compilers: Principles, Techniques, and Tools is a computer science textbook by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman about compiler construction for programming languages. First published in 1986, it is widely regarded as the classic definitive compiler technology text.
> It is known as the Dragon Book to generations of computer scientists as its cover depicts a knight and a dragon in battle, a metaphor for conquering complexity. This name can also refer to Aho and Ullman...

* * *

Phillip G.  
Twitter: [twitter.com/cynicalryan](http://twitter.com/cynicalryan)  
Blog: [http://justarubyist.blogspot.com](http://justarubyist.blogspot.com)

~ What’s the point of wearing your favorite rocketship underpants if  
nobody ever asks to see 'em? – Calvin  
-----BEGIN PGP SIGNATURE-----  
Version: GnuPG v1.4.8 (MingW32)  
Comment: Using GnuPG with Mozilla - [http://enigmail.mozdev.org](http://enigmail.mozdev.org)

iEYEARECAAYFAkgi/RcACgkQbtAgaoJTgL/ZhgCdGfq0yR0chBCnbupy2UAes+JI  
kYYAoIIJX/SE+6o9tjLuvLtsDP8AuZSS  
=0/Ft  
-----END PGP SIGNATURE-----

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [May 8, 2008, 4:26pm UTC](https://www.ruby-forum.com/t/a-computer-science-book-to-learn-about-interpreter-vm-etc/137034/3 "2008-05-08T16:26:22Z")

</div>

On 8 May 2008, at 13:05, removed\_email\_address@domain.invalid wrote:

> but liquid (shopify guys) not being interpreted. I couldn’t follow  
> that too. Also I can’t follow what is “Iron ruby”. I mean what does it  
> mean to have ruby being ported to .NET .
> 
> Could you please refer me a book or two which explains these computer  
> science fundamentals. Also note that I don’t have much background to  
> build up on so please refer books which are not too _geeky_.

It’s probably out of print, but ‘Programming Languages - An  
Interpreter-Based Approach’ by Samuel N. Kamin is my fave book on the  
subject. It’s a treatment of several families of programming languages  
(functional, OO, Lisp, etc.) which presents simplified interpreters  
and includes a chapter on Compilation. The code is in Pascal but don’t  
be put off by that as it’s clearly documented and Pascal is a very  
easy language to understand.

There’s probably also a discussion of these and other concepts in  
‘Structure and Interpretation of Computer Programs’ by Abelson and  
Sussman, but as my copy seems to have gone MIA I can’t check at the  
moment.

Ellie

## Eleanor McHugh Games With Brains [http://slides.games-with-brains.net](http://slides.games-with-brains.net)

raise ArgumentError unless @reality.responds\_to? :reason

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [May 8, 2008, 5:30pm UTC](https://www.ruby-forum.com/t/a-computer-science-book-to-learn-about-interpreter-vm-etc/137034/4 "2008-05-08T17:30:13Z")

</div>

On 8 May 2008, at 13:05, removed\_email\_address@domain.invalid wrote:

> I learned HTML and then I learned programming. Have been a JAVA  
> programmer for a bunch of years and now I have been working on Rails  
> for more than six months. Never worked on C though.

> Could you please refer me a book or two which explains these computer  
> science fundamentals. Also note that I don’t have much background to  
> build up on so please refer books which are not too _geeky_.

If you’re familiar with Java, you should be able to make good progress  
with this:

Programming Language Processors in Java - Compilers and Interpreters  
by David A Watt, Deryck F Brown

Regards,  
Andy S.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [May 8, 2008, 8:42pm UTC](https://www.ruby-forum.com/t/a-computer-science-book-to-learn-about-interpreter-vm-etc/137034/5 "2008-05-08T20:42:02Z")

</div>

On May 8, 8:03 am, removed\_email\_address@domain.invalid wrote:  
…

> Could you please refer me a book or two which explains these computer  
> science fundamentals. Also note that I don’t have much background to  
> build up on so please refer books which are not too _geeky_.

Not sure how easy this text is but its free 9^):  
[http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/](http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/)
