|How to write a virtuel machine and simulator firstname.lastname@example.org (2003-11-11)|
|Re: How to write a virtuel machine and simulator email@example.com (Peter Cooper) (2003-11-18)|
|Re: How to write a virtuel machine and simulator firstname.lastname@example.org (Nick Roberts) (2003-11-21)|
|Re: How to write a virtuel machine and simulator email@example.com (John Galt) (2003-11-21)|
|Re: How to write a virtuel machine and simulator firstname.lastname@example.org (Stephen Sulzer) (2003-12-03)|
|Re: How to write a virtuel machine and simulator email@example.com (2003-12-03)|
|From:||firstname.lastname@example.org (Alfred Einstead)|
|Date:||3 Dec 2003 20:42:07 -0500|
|Posted-Date:||03 Dec 2003 20:42:07 EST|
> I want to write a simulator and a virtual machine.
It's best to derive its entire structure systematically from an
appropriate (recursive) mathematical definition of expression
The best-known example of this is the CAML machine. Specific
cases where this method has been employed can be found in:
(1) The RegEx archive
Contains REX, a large functional superset of GREP containing all the
boolean primities; as well as software for DFA and NFA converters.
(There's a copy of these programs in the comp.compilers archive under
the regex directory).
The programs implement algebraic rules for regular expressions
to do their processing.
(2) The C-BC Programming language
A large functional superset of the BC language.
The architecture is systematically derived from a definition of
expression evaluation, described in detail in the implementation
(3) The SCD Machine
An architecture for optimized combinator reduction. This is
rigorously derived from a definition of expression normal form; the
definition and derivation are spelled out in detail.
(4) The SEQCD Machine
The underlying architecure of the JOLT language; a language that is
simultaneously functional and imperative.
This, too, is rigorously derived from a definition of expression
normal form. The derivation is spelled out in detail.
Return to the
Search the comp.compilers archives again.