Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This manual is for Vmgen (version 0.7.9_20231012, October 12, 2023), the virtual machine interpreter generator
Author: Anton Ertl Copyright © 2002,2003,2005,2007,2008,2019 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being “A GNU Manual,” and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled “GNU Free Documentation License.”
(a) The FSF’s Back-Cover Text is: “You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development.”
| • Introduction: | What can Vmgen do for you? | |
| • Why interpreters?: | Advantages and disadvantages | |
| • Concepts: | VM interpreter background | |
| • Invoking Vmgen: | ||
| • Example: | ||
| • Input File Format: | ||
| • Error messages: | reported by Vmgen | |
| • Using the generated code: | ||
| • Hints: | VM archictecture, efficiency | |
| • The future: | ||
| • Changes: | from earlier versions | |
| • Contact: | Bug reporting etc. | |
| • Copying This Manual: | Manual License | |
| • Index: | ||
— The Detailed Node Listing — Concepts | ||
|---|---|---|
| • Front end and VM interpreter: | Modularizing an interpretive system | |
| • Data handling: | Stacks, registers, immediate arguments | |
| • Dispatch: | From one VM instruction to the next | |
Example | ||
| • Example overview: | ||
| • Using profiling to create superinstructions: | ||
Input File Format | ||
| • Input File Grammar: | ||
| • Simple instructions: | ||
| • Superinstructions: | ||
| • Store Optimization: | ||
| • Register Machines: | How to define register VM instructions | |
Input File Grammar | ||
| • Eval escapes: | what follows \E | |
Simple instructions | ||
| • Explicit stack access: | If the C code accesses a stack pointer | |
| • C Code Macros: | Macros recognized by Vmgen | |
| • C Code restrictions: | Vmgen makes assumptions about C code | |
| • Stack growth direction: | is configurable per stack | |
Using the generated code | ||
| • VM engine: | Executing VM code | |
| • VM instruction table: | ||
| • VM code generation: | Creating VM code (in the front-end) | |
| • Peephole optimization: | Creating VM superinstructions | |
| • VM disassembler: | for debugging the front end | |
| • VM profiler: | for finding worthwhile superinstructions | |
Hints | ||
| • Floating point: | and stacks | |
Copying This Manual | ||
| • GNU Free Documentation License: | License for copying this manual. | |
Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]