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.