|Request for assistance: The Meta Machine email@example.com (Tony Beveridge) (2000-01-03)|
|From:||"Tony Beveridge" <firstname.lastname@example.org>|
|Date:||3 Jan 2000 01:36:56 -0500|
|Organization:||Paradise Net Ltd. Customer|
I seek registrations of interest in the design and construction of a piece
of software that I have entitled the Meta Machine. Both the attachment and
the following plain text describe the intent and interim scope of the
project. Primarily, I hope to attract a number of individuals with
experience in OO, Java and/or C++, AI, formal methods and/or compiler
construction to complete and offer a "GNU" product. This information is
located also at http://homepages.paradise.net.nz/~tonybeve
The text includes a number of present tense pronouncements..however, only
the cup grammar, jflex scanner and partial developer documentation have been
created, as well as a UML model that captures the principle abstractions IMO
Thanks in advance for your time,
The Meta Machine
This document introduces the principle concepts of the Meta Machine Project
(MM). Developer documentation is located here <URL omitted>.
In the increasingly ubiquitous world of virtual machines, a certain
architectural commonality across various [and otherwise unrelated]
implementations has become apparent. For example, most virtual machines are
described by a simple lexicon that includes concepts such as registers,
stack, heap, instruction set, integral (or scalar) types and so on. As is
reasonably obvious, these concepts draw heavily upon their hardware
counterparts. On a different level, common concepts such as instruction sets
are typically expressed using the backaus-naur form context free grammar,
and many descriptions include semi-formalised descriptions of the pre and
post conditions, and invariants, of various instruction set operations.
In spite of such easily identified patterns and componentry, the virtual
machine 'world' is literally awash with implementations of varying
sophistication, usability and extensibility. The purpose of the MM project
is to design and implement a sophisticated general purpose virtual machine
toolkit, with which virtual machines may be created simply and easily, and,
it is hoped, automatically.
MM is an object oriented, professionally designed toolkit that , in
conjunction with it's supporting frameworks, allows for the rapid creation
of virtual machines that are required to model arbitrary machine
architectures and execute instruction sets of moderate complexity.
MM achieves this with an abstracted OO design, which clearly separates
concerns and recognises the inherent commonality of virtual machines
regardless of the simulated architecture and associated instruction set.
Users of MM are able to create or simulate the virtual machine under
consideration, and build upon the well designed abstractions and patterns
that MM provides. MM introduces several new patterns of its own, including
Veto Pass and Dynamic Constrainer. MM allows development teams and vendors
to focus on the 'real' job at hand...the genesis of high quality, efficient
and usable virtual machines.
The features of MM include:
A professional OO design
Pluggable VM architectures
Two garbage collection implementations, with a defined interface for custom
VM generation from BNF grammar and Object-Z schemas
AI implementation that can infer code from Object-Z schemas when generating
Knowledge base implementation that can suggest optimisations of instruction
sets or associated semantics
Multiple code generation facilities (C++, Java and others)
Debugger integration points
Framework embodiments of common behavioral patterns
Security and permissions integration
Scripting language and compiled language VM examples
MM is written in Java 1.2 and uses JFC extensively.
Potential applications of MM include:
IVR call flow builders
Service creation environments
Return to the
Search the comp.compilers archives again.