Re: Academic references on interpreters

Eliot Miranda <>
24 May 2004 00:25:33 -0400

          From comp.compilers

Related articles
Academic references on interpreters (2004-05-16)
Re: Academic references on interpreters (2004-05-24)
Re: Academic references on interpreters (2004-05-24)
Re: Academic references on interpreters (Neelakantan Krishnaswami) (2004-05-24)
Re: Academic references on interpreters (Eliot Miranda) (2004-05-24)
Re: Academic references on interpreters (2004-05-24)
| List of all articles for this month |

From: Eliot Miranda <>
Newsgroups: comp.compilers
Date: 24 May 2004 00:25:33 -0400
Organization: SBC
References: 04-05-046
Keywords: interpreter, bibliography
Posted-Date: 24 May 2004 00:25:33 EDT

Glenn Rowe wrote:
> I was wondering if anyone knows of any academic (i.e. refereed journal
> papers or books) references on the writing of interpreters
> specifically (that is, NOT compilers). I'm mainly interested in
> interpreters for languages such as C++, Java or C#, but if anyone
> knows of *any* academic references on interpreters it would still be
> helpful.

Trawl the OOPSLA proceedings for papers on Smalltalk interpreters.
You'll find ones from '86 and '87 on the Tektronix Smalltalk
interpreter and my BrouHaHa interpreter.

Anton Ertl's work on threaded code interpreters is good and you can
find my posts to comp.compilers on how to do direct threaded code in C
with post-processing of the generated assembler that predates Anton's
work here &

The "Green Book" Smalltalk-80: Bits of History, Words of Advice, Glenn
Krasner Ed covers several Smalltalk interpreters and some microcoded and
compiled implementations. You may be able to find this second-hand on
eBay et al.

The Squeak Smalltalk-80 interpreter is freely available and rather cool
in that it is written in Smalltalk and then translated to C via the
Slang translator (again written in Smalltalk).

Both Dolphin Smalltalk and ObjectStudio Smalltalk are pure bytecoded
interpreters. There is little published on their implementation, but
the green book gives some of the techniques one uses in these contexts
to gain speed.

Lars Bak's Resilient OOVM is a Smalltalk interpreter targeted at small
embedded devices. He did a great presentation on it at this month's
Smalltalk Solutions conferrence in Seattle. The presentation should be
available over the web. Lars also has a web site. This is a modern
bytecode interpreter with relatively high performance.

Also ask on the virtmach mailing list.

I would also look up interpreters for languages like Scheme, Prolog,
Erlang, Haskel and of course Forth.

The easy half-way step to higher performance is the use of direct
threaded-code (a la Forth) where the language is either compiled to
threaded-code or the VM manages the dynamic translation of bytecode to
direct threaded-code. But for high-performance applications dynamic
translation (a.k.a. just-in-time compilation) is common and partial
pre-compilation is starting to be used (notably in the .Net CLI/CLR).

> It seems that there must be something out there but I've been unable
> to find anything.
> Many thanks for any help.
> [PJ Brown published a book on interpreters 25 years ago. I'm not aware
> of anything newer, but the fundamentals haven't changed. -John]

Eliot Miranda Smalltalk - Scene not herd

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.