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

Reply via email to