On Wed, Jun 18, 2014 at 12:01 PM, Jeffrey Kegler <[email protected]> wrote: > Thanks for doing this. Reading even unfinished presentations is helpful to > me, because I come to Marpa from the viewpoint of 1970's parsing theory, and > so what most people need explaining and what does not is very hard for me to > figure out.
My colleagues come from a "just muddle through with split() and regexes" viewpoint, as did I before I discovered Marpa (though I could read BNF). I'm trying to build knowledge and (hopefully) understanding on top of that platform, so I'm really taking it down to baby-steps where I can. That said, I work with some really smart cookies, so I will tend to power through "full steam ahead" and wait for questions. > Here are my comments on the slides. > > Slide 2: Calling Marpa a scribe is a bit like calling Indiana Jones a > professor. Marpa was an explorer/adventurer/teacher/translator, and founder > of the major lineages of Tibetan Buddhism. Yes, but there's only so much you can fit on a slide without butchering the font size and whatnot. I'll see whether I can squeeze in a footnote quoting that description verbatim though. > Also on slide 2: The LHS of a production is not really its name, it's a > symbol. That is, "A ::= B" says that symbol A derives (or produces or can > be rewritten to) symbol B. Point taken. > "A" is sometimes used to "name" the rule, to be > sure, but it's dangerous to think of it as the rule's name. One reason it > is dangerous is that several rules can have the same LHS: > > A ::= B > A ::= 'hello!' > A ::= # empty Point not taken. Point, in fact, blew my mind. More research is required. > Still beating up on slide 2 (sorry): The middle graf about "terminal" versus > "nonterminal" is not really right. You might what to consult my explanation > of "structural" versus "lexical", which lays out the concepts carefully: > https://metacpan.org/pod/distribution/Marpa-R2/pod/Scanless.pod Wilco. Again, I'm trying to baby-step things, and that might be one of the baby-steps that gets a "... well, I lied to you earlier, to save you some pain" slide later in the presentation. > Slide 3: The first graf of this actually talks about the same thing as the > middle graf of slide 1, but does get it right. Huh. Okay. > Slide 5: The LHS of a production is *not* a name. I'm repeating myself, but > it's a really important point. I haven't grasped the importance yet, but I haven't read the above-lined POD yet either. > Btw, the *major* difference between structural ("::=") and lexical ("~") > rules is that the structural rules produce a tree and can have syntax > applied to them. The lexical rules are just for recognizing strings. That's a dramatically clear way to put it. That's going on a slide for sure. > Slide 6: "G0" as a term is deprecated. It's now L0. Consider it fixed. > Slide 7: The SLIF "mess of directives" is the aspect of the SLIF where I > most disappointed myself. I'm not sure how, but I feel I could have chosen > better syntax for the various directives. Nothing I can do about that, I'm afraid. I did change "mess" to "collection", though. > Slide 10: Btw, I picked up the term "adverb", and the basic idea for their > syntax, from Perl 6. Interesting tid-bit. I may slide that in, but Perl 6 has a bad reputation in certain corners. > Slide 12: Actually "::first" *overrides* the default "[name,values]" > semantics. The slide suggests that first the "[name,values]" semantic is > applied, then "::first". That's not the case. It's one *or* the other. Yep. I've nuked the entire slide dealing with "[name,values]" and I'm going to try again on it from scratch, > I hope this is helpful! -- jeffrey Jeffrey, you've never been anything _but_ helpful. Very, very many thanks for taking the time to even look at it, let alone give such good constructive criticism. -- Paul -- You received this message because you are subscribed to the Google Groups "marpa parser" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
