# Arrow System -- Rationale?

Jim Little jiml@inconnect.com
Wed, 06 Jan 1999 22:26:45 -0700

```"RE01 Rice Brian T. EM2" wrote:
> [Jim Little wrote:]
>> Maybe not.  :)  I think Brian's Arrow language is fundamentally
>> pretty simple.  That's part of its beauty.  What's difficult is the
>> RAMIFICATIONS of the Arrow language... that, I don't understand.  I
>> think, because the Arrow language is so simple, Brian confused a lot
>> of folks by saying, "Here it is, very simple, now here's three pages
>> of what it means."  People saw the three pages and thought it was
>> all trying to define the language.
>
> yes, that's what i've been trying to express.  i guess that it was
> confusing in that sense.  thanks for clearing that up.

My pleasure. :)  I think you're on to something, but I think you're
having trouble expressing yourself.  (You might also want to contemplate
the phrase, "You'll catch more flies with honey than with vinegar.  :)
)

> maybe this will help further.  i'll categorize my ideas into areas of
> development effort.
>
> the language is defined, as far as i'm concerned.  i shouldn't have to
> restate it at this point.

Forgive me for saying so, but you should "have to" restate it, and
continue to restate it (differently each time), until you successfully

For example, I think I understand your language, but I'm not sure.  You
need to tell me if my interpretation of it (see the "Prism Mechanics,
Part 2" discussion) is correct.  Otherwise I STILL won't be sure.  :)

> these are some of the things which will be part of the 'ramifications' part
> of the Arrow system, as opposed to defining the language:
>         operators
>         functions
[...]

Actually, what I would like to see is a detailed, laymen's-level
description of why the Arrow language is better than any other
language.  What problems does it solve that other languages don't?  What
does it make easy that other languages make hard?  What does it do when
you hook it up to a toaster?  :)

If I were in the computer store and I saw "Arrow System v6.0" on the
shelf (assuming it was complete), what reason would I have for buying
it?

You can use technical terms like "reflection," but you have to describe
in practical terms what the technical term means and why it's valuable.

Judging from other people's comments, I think they're looking for an
explanation like this, too.

> that is, it is relatively trivial in the Arrow system to make
> statements about parts of other statements.

What's a "statement," in the Arrow system?

> this basically amounts to being able to make a
> new object in the Arrow system by assembling ANY group of other
> arrows in the world of arrows.  in other words, there is NO
> INFORMATION HIDING to an arrow (as opposed to a user or a module)
> WITHIN the arrow system.  all information in the Arrow system is
> available to an arrow.

Does this mean, "The Arrow system can be changed by some outside force
such that any arrow can reference any group of arrows within the Arrow
system?"

If not, I don't understand how an arrow can 'DO' anything.  An arrow
system appears (to me) to have no defined means of changing itself; the
changes have to come from without.  (That's a good thing, as I see it,
but it's counterintuitive if you're used to thinking of traditional
imperative languages.)

>  we achieve 'reflection' by including enough information about the
> system so that it encompasses it's own existence.

But how is information represented in the system?  Define an Arrow
system which represents the binary string "00".  For example, it could
be represented

with this Prism metamodel:          and this model:

_pStream (Binary String)            _pStream
+----+-------+                      +-----+
| 0+ | _pBit |                      | '0' |
+----+-------+                      | '0' |
(State 'zero' of _pBit represents   +-----+
the binary digit 'zero' and state
'one' of _pBit represents the binary digit 'one'.)

Or is the Arrow system also a semantic meta-metamodel, as I define it?
That is, does the meaning of a given Arrow system depend on the meaning
you choose to give it?

Jim Little  (jiml@inconnect.com)
Prism is at http://www.teleport.com/~sphere.

```