The gnop project
The objective of this project is to create tools for the development of emulators.
We will begin by creating specific emulators/simulators to simple processors; then
the plan is to work on Domain-Specific Languages that will help the development of
emulators, and using these languages we will generate emulators that will be compared
with the hand-crafted ones. From this we expect to derive tools and knowledge to ease
and diminish the repetitive aspects of developing an emulator.
Although much used for development of old computer and video-game systems, emulation
can be very useful as a testing platform for embedded systems software development.
Simple techniques for emulation are relatively straight-forward but typically require
a lot of repetitive work. Furthermore, to achieve better performance it is necessary
to use more complex techniques. By factoring know-how into tools, we expect to both
eliminate or diminish the repetitive aspects of emulator programming and enable the
use of efficient implementation techniques, such as dynamic recompilation by users
of the tool. Auxilliary tools for the emulator like debuggers and profilers can also
be built automatically, at least in part, with the use of tools.
More details will be published here shortly.