Idea for framework for machine code simulator

J

Joona I Palaste

Here's an idea of mine I would like to know more about.

Last autumn, I developed a Java program which constituted a framework
system for simulating TTK-91 machine code (TTK-91 is a toy language
developed by my University for educative purposes). The program
implements a "pluggable" framework where people can write their own
"plugins" that implement a simple Java interface, register them at the
program command line, and then the simulator takes care of calling them
at appropriate times. I got full marks for that program in my Software
Design: Java course.

Now here's the idea. What if I extended the framework so that the
actual language would also be "pluggable"? The existing simulator could
only implement the general concept of machine language simulation and
leave the specific details about code structure, opcodes, address modes
etc. up to the "plugins". I am already envisioning support for
D.A.Watt's and D.F.Brown's TAM (Triangle Abstract Machine) and MOS
Technology 6502/6510 code support.

I think this might make an interesting topic for my upcoming Master's
Thesis, but that would require some existing background research. Do you
know of any? Either simple background theory, or other existing
implementations, or both. They can appear in pretty much anything that
is publically available. If you know of something, please let me know.
Thanks.

--
/-- Joona Palaste ([email protected]) ---------------------------\
| Kingpriest of "The Flying Lemon Tree" G++ FR FW+ M- #108 D+ ADA N+++|
| http://www.helsinki.fi/~palaste W++ B OP+ |
\----------------------------------------- Finland rules! ------------/
"When a man talks dirty to a woman, that's sexual harassment. When a woman talks
dirty to a man, that's 14.99 per minute + local telephone charges!"
- Ruben Stiller
 
C

Chris Smith

Joona said:
Last autumn, I developed a Java program which constituted a framework
system for simulating TTK-91 machine code (TTK-91 is a toy language
developed by my University for educative purposes). The program
implements a "pluggable" framework where people can write their own
"plugins" that implement a simple Java interface, register them at the
program command line, and then the simulator takes care of calling them
at appropriate times. I got full marks for that program in my Software
Design: Java course.
Okay.

Now here's the idea. What if I extended the framework so that the
actual language would also be "pluggable"? The existing simulator could
only implement the general concept of machine language simulation and
leave the specific details about code structure, opcodes, address modes
etc. up to the "plugins". I am already envisioning support for
D.A.Watt's and D.F.Brown's TAM (Triangle Abstract Machine) and MOS
Technology 6502/6510 code support.
Okay.

I think this might make an interesting topic for my upcoming Master's
Thesis, but that would require some existing background research. Do you
know of any? Either simple background theory, or other existing
implementations, or both. They can appear in pretty much anything that
is publically available. If you know of something, please let me know.

This is really an implementation task. I don't know what passes for a
master's thesis in CS these days, but wouldn't it need to include a
novel conceptual aspect, rather than a straightforward implementation
using well-known modern language techniques? I certainly hope that a
computer science master's doesn't just mean "I can program!"

Now, if you wanted something really interesting, you could look at
providing for the *declarative* definition of the language elements,
with enough information that the "interpreter" could become an
optimizing translator between languages. With the amount of dynamic
compilation going on these days between Java and .NET, an abstract
expression of low-level languages that allows for easy conversion and
optimization would seem to be very topical.

--
www.designacourse.com
The Easiest Way to Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
G

Gordon Beaton

Now here's the idea. What if I extended the framework so that the
actual language would also be "pluggable"? The existing simulator
could only implement the general concept of machine language
simulation and leave the specific details about code structure,
opcodes, address modes etc. up to the "plugins". I am already
envisioning support for D.A.Watt's and D.F.Brown's TAM (Triangle
Abstract Machine) and MOS Technology 6502/6510 code support.

I think this might make an interesting topic for my upcoming
Master's Thesis, but that would require some existing background
research. Do you know of any? Either simple background theory, or
other existing implementations, or both. They can appear in pretty
much anything that is publically available. If you know of
something, please let me know. Thanks.

There are a number of whitepapers and other publications on (a
particular implementation of) pluggable CPU simulation here:

http://www.virtutech.se/
http://www.sics.se/simics/

As well, Virtutech advertises a few internships (examensarbeten) in
Stockholm.

/gordon
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,813
Latest member
lawrwtwinkle111

Latest Threads

Top