Virtual Machines (was: Byte-Code compiler references)

"Steven D. Majewski" <>
Fri, 4 Aug 1995 14:03:04 GMT

          From comp.compilers

Related articles
Byte-Code compiler references (S.Bharadwaj Yadavalli) (1995-07-20)
Re: Byte-Code compiler references (1995-07-27)
Virtual Machines (was: Byte-Code compiler references) (Steven D. Majewski) (1995-08-04)
Re: Virtual Machines (was: Byte-Code compiler references) (1995-08-08)
| List of all articles for this month |

Newsgroups: comp.compilers
From: "Steven D. Majewski" <>
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 <> 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

  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 |---

Post a followup to this message

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