I think this might be at least partially a font issue. If I am reading your current message right, I probably read 5” as 5’’
And, in the environment I am currently working in (thank you Apple): (a) those two expressions look identical, and (b) I cannot experiment to determine if what’s in my message compose buffer matches what I typed in. So... just in case: for the first 5” here, I used a quote character. And, for the second, I used two apostrophes. :/ — Raul On Thursday, December 13, 2018, Jose Mario Quintana < [email protected]> wrote: > Thanks for the references. However, it turns out that I have been somewhat > familiar with an RL shift-reduce parser. > > Out of curiosity, I tried to shed some ligth. First with the trace > facility, > > trace'5}' > --------------- 3 Adverb ----- > 5 > } > 5} > ============================== > > trace'5"' > --------------- 6 Bident ----- > 5 > " > 5" > ============================== > > It did not help me much. Just in case, I tried the verb which started this > thread, > > ( S=. '(<(<,'':''),<(<(,''0'');1),<(,''0'');1 0$'''') (1 : ''u u`:6`:6 > y'')' ) > (<(<,':'),<(<(,'0');1),<(,'0');1 0$'') (1 : 'u u`:6`:6 y') > > trace S > --------------- 4 Conj ------- > 1 > : > 'u u`:6`:6 y' > 1 : 'u u`:6`:6 y' > . > . > . > > --------------- 8 Paren ------ > ( > <(<,':'),<(<(,'0');1),<(,'0');1 0$'' > ) > ┌────────────────┐ > │┌─┬────────────┐│ > ││:│┌─────┬────┐││ > ││ ││┌─┬─┐│┌─┬┐│││ > ││ │││0│1│││0│││││ > ││ ││└─┴─┘│└─┴┘│││ > ││ │└─────┴────┘││ > │└─┴────────────┘│ > └────────────────┘ > --------------- 3 Adverb ----- > <(<,':'),<(<(,'0');1),<(,'0');1 0$'' > 1 : 'u u`:6`:6 y' > <(<,':'),<(<(,'0');1),<(,'0');1 0$'' (1 : 'u u`:6`:6 y') > ============================== > |syntax error: trace > | <(<,':'),<(<(,'0');1),<(,'0');1 0$''(1 :'u u`:6`:6 y') > > but at the crucial moment trace got bitten by the bug! :) > > (It was a long shot but I aimed for an updated j808 DLL on the > System/Installation/Zips page, > > https://code.jsoftware.com/wiki/System/Installation/Zips > > but I got only broken links (which presumably they will be operating in the > future).) > > Alright then, can Marshall's formal parser, > > https://code.jsoftware.com/wiki/User:Marshall_Lochbaum/Formal_Parser > > help? > > parse@:splitwords'5}' > ┌─────────────────┐ > │┌─┬─────┬───────┐│ > ││1│┌─┬─┐│┌─────┐││ > ││ ││2│}│││┌─┬─┐│││ > ││ │└─┴─┘│││0│5││││ > ││ │ ││└─┴─┘│││ > ││ │ │└─────┘││ > │└─┴─────┴───────┘│ > └─────────────────┘ > parse@:splitwords'5"' > ┌──────────────────────────┐ > │┌─┬────────┬─────────────┐│ > ││1│┌─┬────┐│┌─────┬─────┐││ > ││ ││3│hook│││┌─┬─┐│┌─┬─┐│││ > ││ │└─┴────┘│││3│"│││0│5││││ > ││ │ ││└─┴─┘│└─┴─┘│││ > ││ │ │└─────┴─────┘││ > │└─┴────────┴─────────────┘│ > └──────────────────────────┘ > > I still did not see why 5} can be considered to be reduced but 5" is not > (incidentally, "bident" instead of "hook" would be a better word in this > case, among other things). > > How about the troublesome sentence S? > > parse@:splitwords S > > (I am skipping the output because it would look too messy in the archive; > but, the resulting tree is shallow.) > > You mentioned the stack and a reducing the number of items in the parse > representation and I finally remembered Roger Stokes' excellent Evaluation > in Slow Motion (EVM), > > '5}'EVM > 5} > ┌─┬─┐ > │5│}│ > └─┴─┘ > hist'' > > Queue Stack Rule > > ┌────────┐ ┌──────┬────┬───┐ ┌────┐ > │mark 5 }│ │ │ │ │ │ │ > ├────────┤ ├──────┼────┼───┤ ├────┤ > │mark 5 │ │ } │ │ │ │ │ > ├────────┤ ├──────┼────┼───┤ ├────┤ > │mark │ │ 5 │ } │ │ │ │ > ├────────┤ ├──────┼────┼───┤ ├────┤ > │ │ │ mark │ 5 │ } │ │adv │ > ├────────┤ ├──────┼────┼───┤ ├────┤ > │ │ │ mark │ 5} │ │ │ │ > └────────┘ └──────┴────┴───┘ └────┘ > > '5"'EVM > 5" > ┌─┬─┐ > │5│"│ > └─┴─┘ > hist'' > > Queue Stack Rule > > ┌────────┐ ┌──────┬────┬───┐ ┌──────┐ > │mark 5 "│ │ │ │ │ │ │ > ├────────┤ ├──────┼────┼───┤ ├──────┤ > │mark 5 │ │ " │ │ │ │ │ > ├────────┤ ├──────┼────┼───┤ ├──────┤ > │mark │ │ 5 │ " │ │ │ │ > ├────────┤ ├──────┼────┼───┤ ├──────┤ > │ │ │ mark │ 5 │ " │ │bident│ > ├────────┤ ├──────┼────┼───┤ ├──────┤ > │ │ │ mark │ 5" │ │ │ │ > └────────┘ └──────┴────┴───┘ └──────┘ > > I must be blind, I cannot see the difference; they look eerily similar to > me. Right, the adv rule reduces the number of items in the stack; but, so > does the bident rule. > > The bad news (for me) is that I am still in the dark. The good news is > that I can safely assume that knowing the difference is irrelevant for > programming which could suggest moving any potential additional discussion > on this particular topic to the chat forum. > > P.S. I find the history of '(<(<,'':''),<(<(,''0'');1),<(,''0'');1 > 0$'''') > (1 : ''u u`:6`:6 y'')'EVM quite interesting. > > > On Wed, Dec 12, 2018 at 11:35 AM Raul Miller <[email protected]> > wrote: > > > Here's a more concise explanation: > > > > In http://www.jsoftware.com/help/dictionary/dicte.htm the phrase "and > > eventually executing some eligible portion of the stack and replacing > > it by the result of the execution" describes the same thing that > > "reduce" describes what "reduce" would be in a shift-reduce parser > > explanation. Basically, that "reduce" might also be described as "a > > step of evaluation". > > > > "Shifting", on the other hand, is taking another token (or word) from > > the parsing queue - that's another kind of evaluation step, but it > > doesn't reduce the number of items in the parse representation. > > > > But it really helps if you see it in action - it's such a simple > > concept that it's slippery to think about if you never see it > > happening. > > > > (Perhaps also worth noting that verb definitions are only extracted > > from their name during J's "parser reduce" steps while other named > > entities have their names extracted from their names during J's > > "parser shift"? This is an important distinction because of how > > locales are implemented, and it's also why undefined names are treated > > like verbs in tacit definitions, That said, note that names are not > > always undefined and this can be a source of confusion when using a > > script with forward verb references.) > > > > Thanks, > > > > -- > > Raul > > On Wed, Dec 12, 2018 at 11:18 AM Raul Miller <[email protected]> > > wrote: > > > > > > These look like decent explanations: > > > > > > http://www.cs.binghamton.edu/~zdu/parsdemo/srintro.html > > > > > > or, if you prefer a video presentation: > > > > > > https://www.youtube.com/watch?v=Ga9b_E85Lwc > > > > > > Mind you, the examples are for parsers left-to-right parsers > > > (indicated by LR in the alphabet soup used to label the things), while > > > J's parser is a right-to-left parser (which would probably be labeled > > > by RL along with some other bits of alphabet soup to describe the four > > > token pattern matching that it uses to decide what reduce action to > > > take). > > > > > > Thanks, > > > > > > -- > > > Raul > > > > > > On Wed, Dec 12, 2018 at 10:55 AM Jose Mario Quintana > > > <[email protected]> wrote: > > > > > > > > Why? Can you elaborate? > > > > > > > > On Wed, Dec 12, 2018 at 10:07 AM Raul Miller <[email protected]> > > wrote: > > > > > > > > > Yes. > > > > > > > > > > Thanks, > > > > > > > > > > — > > > > > Raul > > > > > > > > > > > > > > > On Tuesday, December 11, 2018, Jose Mario Quintana < > > > > > [email protected]> wrote: > > > > > > > > > > > It seems to be just academic now. Nevertheless, does your > > interpretation > > > > > > imply that, > > > > > > > > > > > > 5" > > > > > > 5" > > > > > > > > > > > > is not "reduced" but, > > > > > > > > > > > > 5} > > > > > > 5} > > > > > > > > > > > > is "reduced" in the context of shift-reduce parsers? > > > > > > > > > > > > > > > > > > On Mon, Dec 10, 2018 at 10:43 AM Raul Miller < > > [email protected]> > > > > > > wrote: > > > > > > > > > > > > > On Fri, Dec 7, 2018 at 7:53 PM Henry Rich < > [email protected]> > > > > > wrote: > > > > > > > > What Ken meant by "resolve" is not clear to me. > > > > > > > > > > > > > > I expect he meant what people working with shift-reduce parsers > > would > > > > > > > call "reduce". (But Ken would not be inclined to call it that, > I > > > > > > > imagine, because reduce was a similar/different well defined > APL > > > > > > > operation.) > > > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > -- > > > > > > > Raul > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > For information about J forums see > > http://www.jsoftware.com/forums.htm > > > > > > > > ---------------------------------------------------------------------- > > > > > > For information about J forums see > > http://www.jsoftware.com/forums.htm > > > > > > > ---------------------------------------------------------------------- > > > > > For information about J forums see > > http://www.jsoftware.com/forums.htm > > > > ------------------------------------------------------------ > ---------- > > > > For information about J forums see http://www.jsoftware.com/ > forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
