Survey - who's listening?
Brian Rice
water@tunes.org
Tue Jun 26 18:45:02 2001
>Armed with moderate intoxication, but leaving behind common sense and
>dignity, Beren the One-handed rides into the fray.
Well, that's quite brave of you. :)
>I'm listening.
>I have lots of questions but not sure how many I will be able to express.
>
>My background may (or may not) have anything to do with my ignorance and my
>questions... so here it is:
>- electrical engineering at Uni (don't think I ever really used it in the
>workplace)
>- programming in C and assembler (both of these primarily for signal
>processing apps)
>- no formal set theory or logic (except boolean algebra)
>- I have never used Smalltalk or Squeak, and haven't tried out Arrows (I
>think I've got some sort of a grip on your Arrows intro)
Okay, this helps in answering.
>Questions:
>- does Arrows have some sort of equivalent to C's struct??
Yes, arrows whose head and tail information is known and which are
expected to behave as concrete pieces of data are just linked list
structures.
A collection of graphs can also represent a single concrete data
structure's content. I know that's complicated, and I am certainly
working on systems to deal with that in reasonable ways. There will
certainly be a meta-language system in Arrow to generate syntaxes and
specialized evaluators.
>i guess what i'm asking is "how does Arrows implement complex
>types/objects??"
>on 2nd thoughts... how does set theory handle complex types??
Okay, I think that I answered part of this question above. However,
keep in mind that we (Armin and I) are not just thinking in terms of
(local) sets, but general Category theory. If you Google "Category
Theory" on the internet, you should find a few good tutorials, but by
far the best I've seen is the book _Conceptual Mathematics_ which was
published just a couple of years ago.
There are many ways to construct types, and most programming language
formal semantics books deal with these: cartesian products of sets
(sets of pairs of elements of domain and range), mappings, and
lattices (complete partial orders). These are all well known in
formal computer science, and there are some good books out there that
you can learn from.
>- i don't understand your use of incidence, composition, elements...
>is this set theory?? is it related to the first question?? are there any
>papers i should read?? should i head off and join concatenative??
First, concatenative only has to do with languages whose syntax is
like Forth's. :)
Second, incidence is specific to my Arrow theory, which is a
reflective variant of Arrow Logic (in Arrow Logic arrows only refer
to points, so incidence is not part of the formalism per se).
Composition is a major feature of Arrow Logic, as well as Identity
and Inversion. All of this is used in some circles of research for
cognitive science and such.
>- where do you see Arrows fitting into the TUNES framework??
> - High/low level (or both)
I see it as a little more than the HLL. It provides for very high
level semantics, the ability to understand low-level terms in that
semantics (which we call the LLL), but at the same time is not quite
a language. It's not being a language per se makes it to be unlike
what Fare or any other TUNES founder ever expected, and here is where
I have experienced the most misunderstanding. This is why I am
ensuring to include a meta-language framework to allow for the
dynamic creation of small languages to express arrow things.
>- ummm, i've just realised that all my other Arrows specific questions
>relate to this last one, which means i can shut up early... lucky dogs.
I see. Well I tried to answer them all individually anyway. :)
>cheers,
>SDH
>
>PS How will slate be a subset of Arrows??
>SELF looked very interesting
> - i understood it straight away
> - i could see limitations, but also scope for modifying it to
>avoid those
Slate will likely be one of the first languages implemented in Arrow,
along with some kinds of Lisp. I agree about Self, but the more I
have looked into the significances of the syntax, the more I have
sought lateral directions from Self instead of improvements in order
to work around those. (Like methods not being first-order, lack of
more robust meta-objects, and state-based semantics). This is similar
to Forth vs. Joy. Forth _really_is_ based on a stack, where as Joy is
really about rewrite of functional expressions (this takes a little
while to see), although it can be thought of as implementing a stack
easily. I'd like the same thing with the whole notion of recursive
state (objects within objects) of Self.
>Can i see an example of (visionary) slate syntax??
Actually, most examples can be had from the Slate mailing list, and I
am not focussing on Slate right now. It was intended for Slate's
semantics to be expanded to implement all of Arrow, but I believe now
that to layer concatenative syntax over Arrow (which is easier to
agree for me on how to implement) is a much more direct approach. The
alternative would seem to have involved some hacks which compromised
much of the initial design ideas.
Thanks much,
~