File:  [gforth] / gforth / README.vmgen
Revision 1.4: download - view: text, annotated - select for diffs
Thu Aug 22 20:07:33 2002 UTC (19 years, 1 month ago) by anton
Branches: MAIN
CVS tags: HEAD
Getting ready for the Vmgen release
New snapshot dates, various documentation changes, Makefile and configure fixes

Vmgen supports the construction of interpretive systems by generating
the code for executing and dealing with virtual machine (VM)
instructions from simple descriptions of the VM instructions.

This file is about Vmgen-specific issues.  Issues affecting both
Gforth and Vmgen (e.g., platform compatibility) are discussed in

Vmgen generates code for executing VM instructions (with optional
tracing), for generating VM code, for disassembling VM code, and for
profiling VM instruction sequences.  A VM instruction description
looks like this:

add  ( i1 i2 -- i )
i = i1+i2;

Vmgen supports several techniques for writing efficient interpreters:
virtual machine interpreters, threaded code, combining VM instructions
into superinstructions, keeping the top-of-stack in a register,
scheduling the dispatch of the next VM instruction, and a couple of
minor optimizations.  Interpreters created with vmgen usually are
faster than competing interpreters and are typically only a factor of
2-10 slower than the code generateed by native-code compilers.

Vmgen has special support for stack-based VMs (but it can also be
used to advantage when implementing a register-based VM).

Changes in Vmgen from earlier releases are explained in NEWS.vmgen.

After installation the documentation is available in info form and in
printable form (doc/

There is a simple usage example in vmgen-ex (and a variation on that
in vmgen-ex2).  See the documentation for more information on that.

To report a bug, use
<>.  For
discussion on Vmgen (e.g., how to use it), use the mailing list (use
<> to subscribe).

You can find vmgen at

Vmgen is currently distributed with Gforth (because it needs Gforth to
run, and Gforth needs it to build), and is installed together with
Gforth (read INSTALL for instructions).

Note that future versions of vmgen may require small changes in
programs written for the present version (e.g., requiring a few
additional macro definitions).

FreeBSD-CVSweb <>