Yuvaraj A R wrote: > > Dear Forum Members, > > I came across an interesting classification of Programming Languages [1] > by > Prof Peter Van Roy. Since I did not see a mention of APL and its > derivatives, I sent a short mail to him. > > In return, he asked him some specific questions [2] with regard to the > classification he has come up with: > Regarding APL or J, to see where they are placed on the diagram, it > depends > on how they support fundamental concepts like closures, encapsulation, > concurrency, laziness, and state. > > For example: How does J support concurrency (message passing or shared > state)? What kind of encapsulation does J support (with names, giving > ADTs, > or with closures, giving objects)? Does J support data-driven forms of > control (such as monotonic dataflow, nonmonotonic dataflow, by-need > synchronization, or synchronization on partial termination)? > > I am curious to know how the questions posed above are answered. And what > position would that lead to for the APL family of languages. > > Regards, > Yuva > > > [1] http://www.info.ucl.ac.be/~pvr/paradigms.html > [2] The forwarded message below is the transcript of the conversation. > > > ---------- Forwarded message ---------- > From: Peter Van Roy <[email protected]> > Date: Wed, Mar 24, 2010 at 3:18 AM > Subject: Re: APL and Programming Paradigms > To: Yuvaraj Athur Raghuvir <[email protected]> > Cc: Peter Van Roy <[email protected]> > > > Yuvaraj Athur Raghuvir wrote: > >> Hello Prof Peter Van Roy, >> >> I recently came across your article on the programming paradigms. I am >> yet >> to go through it in detail. >> >> As I have been looking into APL derivatives like J (www.jsoftware.com < >> http://www.jsoftware.com>) for sometime now, I am curious to know how you >> would place APL and its derivatives in the chart you have created. >> >> Thanks, >> Yuva >> >> Dear Yuva, > > The chart focuses on the fundamental expressiveness of the paradigms. It > is > the frame on which the domain-specific operations are placed. If the > language is a skyscraper, then the chart explains the skeleton of the > skyscraper (wood, metal, stone, etc.). You can use the chart to guide > language design. > > Regarding APL or J, to see where they are placed on the diagram, it > depends > on how they support fundamental concepts like closures, encapsulation, > concurrency, laziness, and state. > > For example: How does J support concurrency (message passing or shared > state)? What kind of encapsulation does J support (with names, giving > ADTs, > or with closures, giving objects)? Does J support data-driven forms of > control (such as monotonic dataflow, nonmonotonic dataflow, by-need > synchronization, or synchronization on partial termination)? > > Sincerely, > > Peter Van Roy > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > >
According to the chart and the requirement that only features of the core of the language are to be considered, paradigms of J would be: record+procedure+cell (state) [stateful sequential OO prog.] record+procedure+closure [functional prog.] record+procedure+closure+cell (state) [stateful functional prog.] Regarding the Raul's comment that J does not support closures, well, the term closure in the chart is much closer to the bonding in J rather than the ability to explicitly capture the state inside procedure, which would fit into the first/third paradigm along the lines from Raul's post. -- View this message in context: http://old.nabble.com/Fwd%3A-APL-and-Programming-Paradigms-tp28154431s24193p28177932.html Sent from the J Chat mailing list archive at Nabble.com. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
