Machine Descriptions to Build Tools for Embedded Systems
Because of poor
tools, developing embedded systems can be unnecessarily hard.
Machine descriptions based on register-transfer lists (RTLs) have
proven useful in building retargetable compilers, but
not in building other retargetable tools.
Simulators, assemblers, linkers, debuggers, and profilers are built by hand if at
all---previous machine
descriptions have lacked the detail and precision needed to generate them.
This paper presents detailed and precise machine-description
techniques that are based on a new formalization of RTLs.
Unlike previous notations, these RTLs have a
detailed, unambiguous, and machine-independent semantics, which makes
them ideal for supporting automatic generation of
retargetable tools.
The paper also gives examples of Lambda-RTL, a notation that makes it possible for human
beings to read and write RTLs without becoming overwhelmed by
machine-dependent detail.
Full paper
The paper is available as PostScript (410K).
There is a companion technical report that is
much more extensive, showing significant excerpts from actual machine
descriptions.