Yeah, it's a disgusting situation. :/
-- Raul On Fri, Dec 14, 2018 at 11:11 AM 'Mike Day' via Programming <programm...@jsoftware.com> wrote: > > Thank Heavens Ken and Roger avoided all those APL glyphs > > Mike > > > On 14 Dec 2018, at 16:08, Raul Miller <rauldmil...@gmail.com> wrote: > > > > 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 < > > jose.mario.quint...@gmail.com> 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 <rauldmil...@gmail.com> > >> 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 <rauldmil...@gmail.com> > >>> 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 > >>>> <jose.mario.quint...@gmail.com> wrote: > >>>>> > >>>>> Why? Can you elaborate? > >>>>> > >>>>> On Wed, Dec 12, 2018 at 10:07 AM Raul Miller <rauldmil...@gmail.com> > >>> wrote: > >>>>> > >>>>>> Yes. > >>>>>> > >>>>>> Thanks, > >>>>>> > >>>>>> — > >>>>>> Raul > >>>>>> > >>>>>> > >>>>>> On Tuesday, December 11, 2018, Jose Mario Quintana < > >>>>>> jose.mario.quint...@gmail.com> 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 < > >>> rauldmil...@gmail.com> > >>>>>>> wrote: > >>>>>>> > >>>>>>>> On Fri, Dec 7, 2018 at 7:53 PM Henry Rich < > >> henryhr...@gmail.com> > >>>>>> 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 > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm