This paper describes MGEN/x86, a toolkit that simplifies the process of creating dynamic code generators and just-in-time (JIT) compilers for the x86 series of processor. MGEN produces pattern-matching code generators based on a user-defined sequence of rules and semantic action associated with each rule.MGEN includes a number of useful and interesting features such as a table driven macro compiler and a rule based code generator-generator. The rule-based syntax permits pattern-matching instruction selection with a small degree of intermediate representation (IR) operator look ahead against a compile time stack of states.Wildcards may be used to reduce the number of required rules for instruction selection and may assist in reducing the complexity associated with introducing new CPU states by providing a default action at each node.Final year computing students have successfully used the MGEN toolkit to produce syntactically complete just-in-time compilers. The purpose of this paper is to introduce the toolkit as a simple method of performing compilation of mobile collector agents.
[1]
Jesse S. Jin,et al.
Cyberbroker: A lightweight web object collector
,
2000,
World Wide Web.
[2]
Ali-Reza Adl-Tabatabai,et al.
Fast, effective code generation in a just-in-time Java compiler
,
1998,
PLDI.
[3]
Christopher W. Fraser,et al.
Finite-state code generation
,
1999,
PLDI '99.
[4]
Brian W. Kernighan,et al.
The UNIX™ programming environment
,
1979,
Softw. Pract. Exp..
[5]
Erik R. Altman,et al.
LaTTe: a Java VM just-in-time compiler with fast and efficient register allocation
,
1999,
1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425).
[6]
Christopher W. Fraser,et al.
Engineering a simple, efficient code-generator generator
,
1992,
LOPL.
[7]
Jesse S. Jin,et al.
Implementation of an on-site web multimedia collector
,
2001,
Comput. Commun..