[virtmach] High-level & Application-specific virtual machines

/bin/csh kumo@bellsouth.net
29 Nov 1999 12:46:51 +0000

A while ago (6-8 months), a bunch of us hackers on
rec.games.int-fiction got into an extended discussion of the
requirements for a next-generation VM for interactive fiction. The
main reason why I think this might be interesting to the list is that
this class of VMs occupies what I suspect to be a significant niche in
the range of applications where VMs are useful.

Fundamentally, Way Back When, Infocom invented a VM to implement their
text-adventure games and have them be portable across the variety of
very limited (in terms of CPU & memory) platofrms available back
then. This VM, while certainly turing-capable, contains many oddities,
including high-level specifications of I/O, and an inherent object
model (not to be confused with an OO programming model) for
representing game objects and their relationships to each other. And
nearly no dynamic memory allocation (!) This VM has turned out to be
so useful that it continues today as one of the primary (probably
*the* primary) platform for text-adventure development. It has been
extended to encompass some multimedia capabilities by a fairly
enthusiastic user base.

So the questions are: where do these sort of VMs fit into our taxonomy,
and what do people think of application-specific VMs? Smalltalkers
need not apply - their whole system is an application-specific VM :)

I personally find the whole idea intriguing; you can use the VM
specification to specify basic domain semantics, which enables you to
write a myriad of applications in the domain with relative ease. In
some respects this is simply moving the class library from a
trad. programming system down an architectural layer, but in others I
think it represents a legitimate pattern for abstraction.

david rush
Censorship may be useful for preservation of morality, but can never
be so for its restoration.  - Jean-Jacques Rousseau