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.