[comp.compilers] info on byte-coded and other fast interpreters

ham@Neon.Stanford.EDU (Peter R. Ham) (03/16/91)

I'm still looking for some papers/sample implementations of bytecoded
interpreters or other fast interpreters (don't want to compile to
machine code), especially for extension languages.

Already,
I know of:
emacs lisp
xscheme
fool's lisp

Peter
--
[Don't forget Pascal P-code, various PDP-11 threaded Fortran codes, and
the SNOBOL4 macro/bytecode implementation. -John]
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

bremner@cs.sfu.ca (David Bremner) (03/20/91)

Don't forget Smalltalk-80.  A reasonable description of the byte-code
interpreter can be found in "Smalltalk-80, the language and its
implementation" by Adele Goldberg.  Several later versions of
Smalltalk abandon ( or at least modify )the byte code approach for
performance reasons.  OOPSLA is probably a good place to look for info
on Smalltalk optimization.
-- 
bremner@cs.sfu.ca			          ubc-cs!fornax!bremner
[The book "Smalltalk 80: Bits of History, Words of Advice" by Krasner et al.
discusses the history of the Smalltalk 80 implementation and has several
papers on the evolution of the interpreter. -John]
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

oz@nexus.yorku.ca (Ozan Yigit) (03/20/91)

In article <2321@fornax.UUCP> bremner@cs.sfu.ca (David Bremner) writes:
>Don't forget Smalltalk-80.  A reasonable description of the byte-code
>interpreter can be found in "Smalltalk-80, the language and its
>implementation" by Adele Goldberg.

The details of a very similar bytecode interpreter may be found in
Tim Budd's book "A Little Smalltalk". A more recent version of that
code is a part of the little smalltalk (v.3) distribution, ftp-able
from cs.orst.edu [128.193.32.1], under pub/budd.

enjoy...	oz
---
internet: oz@nexus.yorku.ca, uucp: utzoo/utai!yunexus!oz
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

acha@CS.CMU.EDU (Anurag Acharya) (03/20/91)

The implementation of Oaklisp, an object-oriented dialect of Scheme,
was based on a fast bytecode interpreter. 

check out

Kevin Lang and Barak Pearlmutter, "The Oaklisp language and implementation 
manuals", Tech report CMU-CS-87-103 School of Computer Science 
Carnegie Mellon University.

and

Kevin Lang and Barak Pearlmutter, "An object oriented scheme with first class
types", ACM conf on object-oriented systems, programming, languages and
applications, sept 1986, pp 1-8

anurag
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

andrew@brownvm.brown.edu (Andrew Gilmartin, CIS) (03/20/91)

>I'm still looking for some papers/sample implementations of bytecoded
>interpreters or other fast interpreters

*SmallTalk 80 : bits of history, words of advice* edited by Glenn Krasner
is a collection of paper chronicling various vendor attempts to implement
the SmallTalk 80 engine. It is enjoyable reading plus most articles have a
bibliography which should give you other sources of information.

-- Andrew Gilmartin
   Computing & Information Services
   Brown University
   (401) 863-7305
   andrew@brownvm.brown.edu (internet)
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

adrianho@barkley.Berkeley.EDU (Adrian J Ho) (03/21/91)

For a (perhaps) more up-to-date reference, check out:

"The Oaklisp Implementation Guide", Barak Pearlmutter & Kevin Lang,
Jan 15, 1990.

This manual, along with the sources to Oaklisp and "The Oaklisp
Langauge Manual", can be found at:

f.gp.cs.cmu.edu: /usr/bap/oak/ftpable/  [128.2.250.164]

Note that this site, along with most others at CMU, imposes a curious
restriction in that you can't specify '..' in paths.  You'll therefore
have to cd directly to the specified (no browsing 8-).

Also, I corresponded with Barak last month, and he mentioned that the
implementation of Oaklisp is also described in a chapter of "Topics in
Advanced Language Implementation" (ed. Peter Lee, MIT Press, 1990).

Good luck!
-----------------------------------------------------------------------------
Adrian Ho, EECS (pronounced "eeks!") Dept.		Phone: (415) 642-5563
UC Berkeley					adrianho@barkley.berkeley.edu
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

eliot@cs.qmw.ac.uk (Eliot Miranda) (03/25/91)

Smalltalk bytecode interpreters:

Berkely Smalltalk:
	%A David M. Ungar
	%A David A. Patterson
	%T Berkeley Smalltalk: Who Knows Where the Time Goes?
	%B Smalltalk-80: Bits of History, Words of Advice
	%E Glenn Krasner
	%I Addison-Wesley
	%C Reading, MA
	%D 1983
	%P 189-206
	%K Ungar83

Tektronix Smalltalk:
	%A Patric J. Caudill
	%A Allan Wirfs-Brock
	%T A Third Generation Smalltalk-80 Implementation
	%J Proceedings of OOPSLA'86
	%D November 1986
	%I SIGPLAN
	%V 21
	%N 11
	%K Caudill86

BrouHaHa Smalltalk
	Eliot Miranda
	"BrouHaHa - A Portable Smalltalk Interpreter"
	pp 354-365,
	Proceedings of OOPSLA '87, vol. 22, no. 12, ACM SIGPLAN Notices, Dec 87.


How to improve on Smalltalk bytecode interpreters:
	%A L. Peter Deutsch
	%A Allan M. Schiffmann
	%T Efficient Implementation of the Smalltalk-80 System
	%J 11th Annual Symposium on Principles of Programming Languages
	%D January 1984
	%P 297-302
	%K Deutsch84

(also check out my articles on dynamic translation to threaded-code
on comp.arch about a year to six months ago. summary, dynamic translation
of bytecodes to threaded-code can be fast, compact and portable)
-- 
Eliot Miranda			email:	eliot@cs.qmw.ac.uk
Dept of Computer Science	Tel:	071 975 5229 (+44 71 975 5229)
Queen Mary Westfield College	ARPA:	eliot%cs.qmw.ac.uk@nsf.ac.uk	
Mile End Road			UUCP:	eliot@qmw-cs.uucp
LONDON E1 4NS
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

bremner@cs.sfu.ca (David Bremner) (03/25/91)

That reminds me: 

The same David Unger from Berkley referenced above does a fair bit of
analysis of the tradeoffs between byte coded and native code
implementations of Smalltalk in his book about SOAR (Smalltalk on a RISC).
I think the book is called something like "SOAR".  Actually I guess it is
more a presentation of why native is better, but probably still worth
looking at.

-- 
bremner@cs.sfu.ca			          ubc-cs!fornax!bremner

-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.