I've searched for the web without finding anything. I also contacted
Adam Goucher which kindly responded a few of my questions and told me
that currently there is no further documentation. He also mentioned a
similar design (Igblan) that I could lookup, but I still don't get how
I can program the machine! Does anyone have any experience on this? If
so, I'll grateful for anything that can help me.
Cheers,
Homayoon
Yes -- Calcyman's universal computer is an impressive construction
indeed, but nobody has any experience programming in Life machine
code, and no compilers for higher-level Life languages have been
written as yet... What exactly do you want to program the UCC to do?
A universal computer/constructor could either calculate anything
calculable, or construct anything constructible, or both. Probably
best to pick a fairly simple task to start out.
> I've searched for the web without finding anything. I also contacted
> Adam Goucher which kindly responded a few of my questions and told me
> that currently there is no further documentation. He also mentioned a
> similar design (Igblan) that I could lookup, but I still don't get how
> I can program the machine! Does anyone have any experience on this? If
> so, I'll grateful for anything that can help me.
If you're more interested in constructing than computing, you might
try working with Paul Chapman (Igblan)'s original Spartan universal
constructor -- http://tinyurl.com/universal-constructor -- which
doesn't have a universal *computer* attached. Might make it a bit
easier to see what's going on. Calcyman included this as a
(relatively small) part of his full UCC. In the original version, you
can put a string of blocks and spaces on a diagonal "tape", and the
machine will convert that to a slow-salvo glider recipe, to build
whatever you want to build.
See Signal-Circuitry/constructor-memory-tape.rle in Golly's pattern
collection ( http://golly.sf.net ) for a version of this with enough
comments to get you started on programming something new. There are
some more details in constructor-memory-loop.rle -- hit the "i" (info)
button after loading each pattern.
One fairly ambitious goal would be to put together a compiler for
unclustered Blockic patterns, which would be an important step toward
showing that the prototype universal constructor is really universal.
See Syntheses/blockish-and-blockic-seeds.rle for examples of "seed"
patterns made out of blocks that can be triggered with a single glider
to construct other more complex objects.
A full compiler might be a little ambitious for a class project,
though -- depending on what the class is! But there are various
smaller tasks along the way, which I could try to describe in more
detail if you thought the general topic looked interesting.
Anyway, I'm one of the few people with "programming experience" even
for the universal constructor, let alone Calcyman's constructor/
computer, so let me know what questions you have. Might be a good
idea to move the discussion over to http://conwaylife.com/forums/ if
it's likely to get into a lot of details -- much better spam control
there than on comp.theory.cell-automata these days.
Keep the cheer,
Dave Greene