Related articles |
---|
Byte-Code compiler references sby@cs.usask.ca (S.Bharadwaj Yadavalli) (1995-07-20) |
Re: Byte-Code compiler references davis@wln.com (1995-07-27) |
Virtual Machines (was: Byte-Code compiler references) sdm7g@elvis.med.virginia.edu (Steven D. Majewski) (1995-08-04) |
Re: Virtual Machines (was: Byte-Code compiler references) will@ccs.neu.edu (1995-08-08) |
Newsgroups: | comp.compilers |
From: | "Steven D. Majewski" <sdm7g@elvis.med.virginia.edu> |
Keywords: | interpreter, architecture |
Organization: | University of Virginia |
References: | 95-07-138 95-08-010 |
Date: | Fri, 4 Aug 1995 14:03:04 GMT |
Ryan Davis <davis@wln.com> wrote:
>I've asked and looked... I didn't get much...
>
[ ... Smalltalk & Java VM references deleted ... ]
Well - I missed the original question, and just caught the
followup, so I'm not sure if this is an answer to some OTHER
question, but:
If you're willing to poke around source code and look at
*implementations* there's a lot of examples to look at:
Python, Xlisp, several versions of Scheme all compile
into byte code for a Virtual-Machine interpreter.
If you want to consider varieties of threaded-code, there
are several books on Forth that go into that taxonomy.
( Not exactly "byte"-code, as, except for token threaded
code, you are usually representing addresses, which are
somewhat larger than a byte. But you will still find some
interesting techniques in the Forth literature.
Lots of other functional language implementations use a
portable Virtual Machine interpreter core - Caml-Light and
Moscow/ML come to mind, although I don't know any details
of the VM architecture don't know if it's appropriate to
describe it as "byte-code".
I guess the grandfather of all of the functional VM's is
the SECD machine - there's a good description of it in
Henderson's Functional Programming ( which I don't have
on hand, so I can't check, but I THINK that was first
described by Landin. )
( Some of the more recent/modern functional VMs are based
on more arcane concepts, but SECD is a pretty good basic
model for an interpreter. )
If this is close to what you wanted, then maybe you asked
the wrong question - "byte-code" is both too vague and too
restricted. If it's NOT, then sorry - but now I get to ask
one:
What I'm interested in is compiling to a byte-code that
serves as both an Virtual Machine interpreter code, and
as intermediate code for machine code generation. ( i.e.
fast compilation to slow interpreter byte code, or slower
compilation to fast machine code when optimization requested.)
Any references on that?
---| Steven D. Majewski (804-982-0831) <sdm7g@Virginia.EDU> |---
---| Computer Systems Engineer University of Virginia |---
---| Department of Molecular Physiology and Biological Physics |---
---| Box 449 Health Science Center Charlottesville,VA 22908 |---
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.