Wanted: Simple virtual machine or interpreter

Norman <jmn@update.uu.se>
14 Feb 1998 21:42:11 -0500

          From comp.compilers

Related articles
Wanted: Simple virtual machine or interpreter jmn@update.uu.se (Norman) (1998-02-14)
Re: Wanted: Simple virtual machine or interpreter bmcsweeney@hotmail.com (brian mcsweeney) (1998-02-18)
Re: Wanted: Simple virtual machine or interpreter augustss@cs.chalmers.se (Lennart Augustsson) (1998-02-18)
| List of all articles for this month |

From: Norman <jmn@update.uu.se>
Newsgroups: comp.compilers
Date: 14 Feb 1998 21:42:11 -0500
Organization: Compilers Central
Keywords: interpreter, question
CC: jmn@update.uu.se

I'm searching for a simple low-level, yet efficient virtual machine
and a compiler for it.

The background is that I like to write a modem utility that works on
several [computer] platforms. I can write a portable application that
just needs to be recompiled on the target platform, but I'm not
satisfied with that solution.

The problem is that I'm going to release the application under GPL,
and expect it to be modified and ported by a lot of programmers over
time. Still I need a way to quickly upgrade the utility to handle new
modems that appears rather often. To let the average end user (who
probably don't even know the word "compiler" ;-) have this upgrade
_fast_ can really be a problem. Especially since I don't have control
over all versions of the utility...

My intended solution is to use a virtual machine that looks the same
on any platform. This machine runs platform independent code that
handles the protocol layer that communicates with the modem. To
upgrade, a user just needs a new code file for this virtual machine,
and can always find the latest version at my WWW page.

I need this virtual machine though, and here is my dream specification:

* Source available in C.

* Public domain or distribution under a "license" that makes it
possible to redistribute the source and application (like GPL).

* Possible to program in a "high-level" language (like C, Rexx, Basic,

* Efficient enough to handle a medium speed modem on a typical
80286/68000 based machine. (My estimate is about 100 000 simple
instructions/second (like ADD, JMP, MOVE. For the 68000, this leaves
roughly 20 native instructions/emulated instruction.)

* Instruction space and data space at least as good as a typical 32
Kbyte Z80 microcomputer.

* Size of binary that emulates the virtual machine: 16 Kbyte, or less.
(If it needs more, it's not a _simple_ virtual machine!)

Does such a beast already exist, or do you know something "close
enough" that I can modify?

I guess any old CPU emulator or integer BASIC interpretator can be
helpful. But are there even better things out there?

Thanks in advance for any help!

Morten Norman email: jmn@update.uu.se


Post a followup to this message

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