[C.CC USERS] Understanding Transterpreter

Matt Jadud matt at jadud.com
Wed Jan 12 12:58:08 GMT 2011


On Wed, Jan 12, 2011 at 05:05, Steve Pretty
<steve.g.pretty at btinternet.com> wrote:
> is also a Scheme version - is the source for that available?

What did we call that thing? Ah. "soccam."

Some years ago we moved the Transterpreter project into the mainline
repository (once there was a mainline repository), and decommissioned
the original repos. The TVM repository is here:

http://projects.cs.kent.ac.uk/projects/transterpreter/trac/

Nothing in it is supported or expected to work in any way at this point.

http://projects.cs.kent.ac.uk/projects/transterpreter/trac/browser/soccam/trunk

The interpreter was... mostly right, and wrong in some places. I think
those places were updated for a while, and then the C version of the
interpreter became the primary output of the group, and the Scheme
interpreter lost its value. It served its purposes, however:

1. It was "one to throw away." We knew that it could not possibly run
on the LEGO Mindstorms, and therefore we would never be tempted to use
this implementation on an embedded platform.

2. It would force me to learn something about the design of the
Transputer and occam (as I did not know anything at that point.)

3. It would force Christian to learn something about Scheme, as I was
planning on writing the linker in Scheme (if we were planning that far
ahead... I can't remember).

It served its purposes, and the first C version of the interpreter
followed this implementation closely, which likely cut development
time significantly. Like much of the early code, it represented many
hours of pair programming, and a lot of discussion.

Christian may have other stories to tell, but they probably shouldn't be told.

Related and unrelated is "42," a sketch of a new compiler.

http://projects.cs.kent.ac.uk/projects/transterpreter/trac/browser/42/trunk

This was to explore how difficult it would be to write a new occam
compiler. It was a good exploration, and while I might revisit the
ideas here someday, I don't know how much of this code I'd keep
around.

That's a quick dive into some historical code. Feel free to ask
questions about it (in an academic way, not an "I can't get this to
compile" way), and we'll see how bad our memories are.

Cheers,
Matt



More information about the users mailing list