[comp.compilers] Choosing software VM instruction sets

landers@uunet.uu.net (05/28/91)

I'm interested in finding references about the design of instruction sets for
software based virtual machines.  For instance, the HOC calculator in
Kernighan & Pike's "Unix Programming Environment" is a simple stack based
machine with a small number of operators.

I'm especially interested in references on compiling a HLL, such as C, for a
VM that runs on a wide variety of different hardware platforms (rather than,
say, using the VM instruction set as an intermediate language).

Thanks in advance,

Joe Landers
TechniCon Computer Services
444 Spear St.,  Suite 213			phone: (415)-896-6313
San Francisco, CA.  94105			 uucp: ..!uunet!mabel!landers
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

kwalker@cs.arizona.edu (Kenneth Walker) (05/29/91)

In article <91-05-103@comp.compilers>, mabel!landers@uunet.uu.net writes:
> I'm interested in finding references about the design of instruction sets for
> software based virtual machines...

You might look at the book "The Implementation of the Icon Programming
Language" by Griswold and Griswold, Princeton University Press, 1986
(ISBN 0-691-08431-9). It describes the interpreter and run-time system
for Icon. The interpreter has been ported to many platforms. (Note that
compared to Icon, C is NOT a high level language.)

  Ken Walker / Computer Science Dept / Univ of Arizona / Tucson, AZ 85721
  +1 602 621-4252  kwalker@cs.arizona.edu {uunet|allegra|noao}!arizona!kwalker
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

kgg@lfcs.edinburgh.ac.uk (Kees Goossens) (05/29/91)

In article <91-05-103@comp.compilers> mabel!landers@uunet.uu.net writes:
>I'm interested in finding references about the design of instruction sets for
>software based virtual machines.  ...

You may want to have a look at a very high level abstract machine called
Ten15. A number of languages can be compiled onto it, and it runs on a few
different real machines, if I remember correctly. Maybe someone else can
expand on this; it's been a while since I read the article:

@InBook(Foster89a,
	Keywords="ten15, formally defined abstract machine, high level
	compiler target, hoare logic style semantics, has closures as
	basic type.",
	Author="J M Foster",
	Title="The Algebraic Specification of a Target Machine: {T}en15",
	Chapter="9",
	Pages="198--225",
	Publisher="Pitman",
	Address="London",
	Series="Computer Systems Series",
	Year="1989")

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