Bux fixes, more progress, beginnings of a tutorial
Brian Rice
water@tunes.org
Sat Jun 2 17:15:02 2001
Okay, here's some much-fixed code for Arrows, along with a
much-updated tests file. Everything in the tests works fine, along
with a few other things. It also works as a small tutorial for basic
arrow concepts. I suggest trying to use InductionGraph by making a
new instance, assigning it to a variable, and then sending it some
InductionGraph-y messages to test it out. I haven't tested the whole
thing, but much of it works.
Incidentally, Arrow is very difficult to architecture: a lot of what
it is is very related to a lot of AI projects of the past. A lot of
the code has to resort to brute-force searching when the proper
meta-information isn't there beforehand. So basically the coding aim
is to make a lot of common programming language semantics available
to be easily done within the framework, and to not prevent any other
semantics.
As coding continues I am more convinced that an OCAML implementation
would be ideal for achieving some good performance before
self-hosting becomes feasible. This will take some time, but should
also be quite as readable as the Smalltalk version (I hope so,
anyway).
There are a few changes and architectural features I have not been
showing, mostly because they have been in constant flux and often
aren't very readable... they're mostly hack-based ideas, but should
be coming together soon. As I study Maude more closely as well as a
lot of the suggested resources mentioned here earlier, a strategy is
starting to become clear (it only took 7 years :P).
One last note: Arrows is officially reflective, since recently I have
changed the architecture to rely on reification of Smalltalk objects
and literals, so SmalltalkMOP is now really a part of the Core
package, although it obviously deals with a very specific set of
information. It now works quite well, but beware when dealing with
variable objects, as I have not worked out a system to deal with
state effectively yet. (And monads and category theory are at the top
of my mind recently of course.)
More to come of course.
Thanks,
~