Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This manual is for Vmgen (version 0.7.9_20250625, June 25, 2025), 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]