|Re: Mixing languages firstname.lastname@example.org (1995-06-03)|
|Re: Mixing languages email@example.com (1995-06-05)|
|Re: Mixing languages firstname.lastname@example.org (1995-06-24)|
|Re: Mixing languages gbaker@rp.CSIRO.AU (1995-06-27)|
|Re: Mixing languages email@example.com (1995-06-28)|
|From:||firstname.lastname@example.org (Richard A. O'Keefe)|
|Organization:||Comp Sci, RMIT, Melbourne, Australia|
|Date:||Sat, 24 Jun 1995 12:31:21 GMT|
I cited Java, with its portable VM.
email@example.com (Kurt Stephens) writes:
>Why reinvent the wheel with another VM/BYTECODE system? Use a subset of
>the Intel x86 instruction set and write *ONE* portable emulator for
For a very simple reason: there is no subect of the *86 instruction set
that could do the job. There are at least three goals that a VM for Java
(1) it should be capable of expressing Java constructs WITHOUT IMPOSING
TOO MANY IMPLEMENTATION STRATEGIES (e.g. without saying anything about
the structure of objects in memory)
(2) it should NOT be capable of expressing things that Java doesn't allow.
In particular, address arithmetic is O-U-T.
(3) it should permit usable direct implementations (e.g. interpreters for
the abstract machine rather) as well as indirect implementations (e.g.
translators to native code).
The 80*86 instruction sets are at the wrong semantic level to meet these
goals. You would need rather more 80*86 instructions to get any desired
effect, and they would reveal/constrain too many implementation details.
Richard A. O'Keefe; http://www.cs.rmit.edu.au/~ok; RMIT Comp.Sci.
Return to the
Search the comp.compilers archives again.