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

Reply via email to