arrow-structure syntax and semantics

RE01 Rice Brian T. EM2
Tue, 8 Dec 1998 20:48:28 +0800

> >        -'data-flow graph' could be better explained as 'symbol flow
> graph'
> >(or structure flow graph).  the point is that the arrow-structure in
> >question migrates to the location where it is used, instead of having a
> >representation.  maybe this concept won't work.
> I think it will, you can draw analogies to thread systems:
<edited for brevity>
> Now admittedly your arrows are structure pointers as opposed to execution
> entities (currently?) but moving the arrow structure adds a layer of
> abstraction (more arrow pointers) while at the same time decreasing the
> layers
> by associating with a location, not a representation ie. it is just
> changing
> context, so it can work, and a lot of work has been done on migrating
> threads...
Well, the pointer-structure idea is just a way to visualize a concrete
system implementing such a conceptual system.  I'm not making any guarantees
that such a format will _ever_ show up in Tunes software as a necessary
element.  (It could, of course, show up at the request of the user, just
like any other interface can be called upon.)

> It seems like the arrows representation is a good start (it solves a lot
> of
> problems eg. type constraints etc.), however there are some things I am
> worried about: you have not talked about methods of sync.  (for
> distriution/parallelism, no  reference has been made to gcc (needs to be
> considered along with semantics content in factoring out) or cooperative
> scheduling.
Well, I could represent threads with arrow structures, which is one of the
advantages of this scheme.  As for parallelism, since I haven't even
modelled a sequential computation model, I don't see a parallel model being
excluded just yet.  Synchronisation, for instance, could be implemented by
describing the relationships preserving the consistency that we want.  All
of this I will get to _later_ in the arrow discussion.  In fact, I don't see
why we would ever have a problem with something like that.

btw, if anyone thinks that I want to make some sort of 'arrow compiler',
then they are quite mistaken.  The point of the arrow system is a unified
conceptualization of computer systems.