parsing (was: related projects)
Jecel Assumpcao Jr
jecel@tunes.org
Fri Feb 28 14:32:03 2003
On Thursday 27 February 2003 17:58, Brian T Rice wrote:
> I suppose so, but I wouldn't point out PIE and Sketchpad as the best
> of what was lost.
Having read all the available papers on these projects, I wouldn't mind
having them exactly as they were back then. Specially Sketchpad.
> Nope, it's entirely pragmatic. Generally, the Tunesy thing we intend
> to do requires us to deal with programs in an abstract manner,
> allowing annotations to be built without special syntax. So expect
> interesting things after the bootstrapped system has been built out
> into something semi-comfortable.
That will be interesting. Integrating annotations with the "main"
program will give you many of the same problems that the Aspects people
face. This is a place where graphics can help: a single line linking
one point in the source to another point in a separate "file" is far
clearer than any textual naming convention, thought in theory it would
seem about the same.
> > Supposing you have Arrow running in Slate. My question is if the
> > two would eventually merge somehow or if Arrow would always be a
> > kind of application for doing limited things?
>
> Eventually, they should merge in some way, with Arrow becoming a
> general pervasive utility for developing information transformations
> and translations, as well as providing the nuts and bolts for an
> inference system. However, this requires some fancy partial
> evaluation work and even more work on relating the different ways of
> formalizing arrows, so who knows when/if it will be feasible.
This is where having a group of PhD students sometimes helps. I guess
the plan "1. make it work, 2. make it right and 3. make it fast" is
good since having 1 you can get other people interested in doing 2 and
3.
> > [quick overview of the new syntax]
>
> This appears to be requiring context-free grammars.
Not really - my system doesn't have a parser at all! The code editor
tricks you into entering and manipulating syntax trees directly :-)
This is my version of "as simple as possible".
I am still interested in parsers for importing code from Self/Smalltalk,
however. And for reading other kinds of files as well.
> This kind of
> syntax generality is why I've been looking into Maude's MetaParser
> system (see http://cliki.tunes.org/Syntax%20in%20Maude).
This looks very flexible.
> Right now
> I'm translating a Smalltalk parser-generator to Slate just to get LR1
> and LALR1 handling, and it's not attractive at all, although better
> than it was for Smalltalk.
Have you seen the Mango package for Self? It translates "structured BNF"
into a LR1, LALR1 or SLR1 grammar (you choose which) and then generates
a Self program to parse it. Ole Agesen's test example was ANSI C and it
was used by Mario to parse GNU Smalltalk. I have never understood why a
parser couldn't be generated directly from the original structured BNF.
> But to get the MetaParser usage, you have to implement Maude's
> semantics to some extent, so eventually the object-oriented approach
> has to yield somehow. I suppose this is where I should tie things in
> with Arrow, but I'm not sure.
The Maude manual pages you gave a link to talk about "objects" a lot. I
haven't looked at the rest of the language description.
-- Jecel