Ok, well... to describe a classic parser, you need a state machine for lexical analysis (sadly, J's ;: is too specialized to handle the general case here, but it's probably good enough for most languages), and another state machine with a stack to describe the parser itself.
Redex was built as an interface to one of those state machine+stack parsers. It's not capable of representing J's https://www.jsoftware.com/help/dictionary/dicte.htm partially because Redex parses from left to right instead of from right to left, partially because it's built on the idea that you only need a pair of items to make a parsing decision, and partially because it assumes that the parser should be required to only produce a single kind of result from a parsing decision. That doesn't happen for rows 3 and 4 of that table. All of those issues could be worked around by building a separate table, but you'd have to use "any" rules to describe the result of using J's adverbs and conjunctions. Which... hmm... it would be interesting to see if that could be made to happen. Anyways, ... I think we need more motivated college teachers before we could engage the PL community on its home turf. Henry Rich's work is an excellent start, and we have some others (Cliff Reiter and Brian Schott come to mind), but we have a ways to go before we can compete with the size and energy of the Racket community (who have tackled projects like rebuilding the javascript interpreter for web browsers, or at least attempting to do so -- I don't know how well the deployment of that system went, but we have seen speedups of Javascript which happened about the right time and with about the right pace for that). That said, it's also wise to keep in mind some weaknesses of the J community. One of which is that we're not really capable of taking on real time programming tasks (neither is Racket, because of its garbage collection algorithm). You need a language where garbage collection can be entirely avoided to tackle real time projects. (Historically, this has been languages like Forth and Ada, though C and C++ are also relatively popular.) I think we could get there, but it's not a small task. (We'd also be going over ground which has already been covered many times, and we'd have to start with small, manageable projects.) Thanks, -- Raul On Fri, Oct 2, 2020 at 2:28 AM Devon McCormick <[email protected]> wrote: > > The point I am trying to make w/the PL community is that using inadequate > notations like BNF leaves out an important bunch of PLs. > I don't think they are motivated to do anything about this, judging by the > BNFy flavor of Redex. > Roger's simple table in the C appendix of "APL from 1978" ( > https://dl.acm.org/doi/10.1145/3386319) is marvellously simple and robust > but I don't think the PL people will take it seriously until it's applied > to a language more familiar to them. The Redex tutorial ( > https://dvanhorn.github.io/redex-aam-tutorial/) evaluates s-expressions > using a Racket interpreter and the example target is "...a very simple, > typed functional programming language based on the PCF language (Plotkin > <https://dvanhorn.github.io/redex-aam-tutorial/index.html#%28autobib._.Gordon._.Plotkin.L.C.F._considered._as._a._programming._language.Theoretical._.Computer._.Science._5%2C._pp..._223--2551977http~3a%2F%2Fhomepages..inf..ed..ac..uk%2Fgdp%2Fpublications%2F.L.C.F..pdf%29> > 1977 > <https://dvanhorn.github.io/redex-aam-tutorial/index.html#%28autobib._.Gordon._.Plotkin.L.C.F._considered._as._a._programming._language.Theoretical._.Computer._.Science._5%2C._pp..._223--2551977http~3a%2F%2Fhomepages..inf..ed..ac..uk%2Fgdp%2Fpublications%2F.L.C.F..pdf%29> > ). " > We are at an impasse with the PL community unless we can show that array > language notation can describe more familiar languages as well as array > languages. Otherwise we're back to competing notations which the small, > weird one will always lose. > > > On Thu, Oct 1, 2020 at 7:54 PM Raul Miller <[email protected]> wrote: > > > I suspect that a redex representation of J's grammar would not be very > > descriptive. > > > > I think you would need an adequate dependent type system to fully > > specify the syntactic types of the results of J's adverbs and > > conjunctions. > > > > Still... you could specify an informative subset of J's grammar in > > redex, by [falsely] assuming that adverbs and conjunctions always > > produce verbs. > > > > I hope this helps, > > > > -- > > Raul > > > > On Thu, Oct 1, 2020 at 4:52 PM Devon McCormick <[email protected]> wrote: > > > > > > I recently butted in to a PL (programming languages) discussion on > > Disqus - > > > > > https://disqus.com/home/discussion/sigplan-pl-perspectives/pl_notation_is_a_barrier_to_entry/#comment-5091883057 > > > - where I moaned about the lack of inclusion of array languages in the PL > > > discussion. > > > > > > The writer of the blog entry "PL Notation is a Barrier to Entry" > > responded > > > with some examples of PL notations to look at: Ott (which I could not > > > find), K (same K we know?), and Redex about which there is info here > > > https://www.youtube.com/watch?v=ktNrRSAjyzQ and here > > > https://dvanhorn.github.io/redex-aam-tutorial/. > > > > > > Since Redex looks a lot like BNF (Backus-Naur Form), I'm guessing it may > > > also be inadequate for describing languages like J but I would like to > > hear > > > the opinion of someone more knowledgeable than me about this. > > > > > > Roger referred me to Appendix C of his and Morten's recently released > > "APL > > > since 1978" paper (https://dl.acm.org/doi/10.1145/3386319) where they > > > describe a parser model using APL. This is an example of using APL to > > > describe a PL. I would be interested in seeing a language like C > > described > > > this way. Does anyone have an example like this? > > > > > > -- > > > > > > Devon McCormick, CFA > > > > > > Quantitative Consultant > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > -- > > Devon McCormick, CFA > > Quantitative Consultant > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
