Newsgroups: comp.lang.apl
Path: watmath!watserv1!utgpu!cs.utexas.edu!wupost!m.cs.uiuc.edu!m.cs.uiuc.edu!liberte
From: liberte@cs.uiuc.edu (Daniel LaLiberte)
Subject: Re: Expressiveness of Language
In-Reply-To: ljdickey@watmath.waterloo.edu's message of Fri, 20 Mar 1992 18:42:05 GMT
Message-ID: <LIBERTE.92Mar20173238@birch.cs.uiuc.edu>
Sender: news@m.cs.uiuc.edu (News Database (admin-Mike Schwager))
Organization: University of Illinois, Urbana-Champaign, Dept CS
References: <1992Mar19.190314.27860@csi.jpl.nasa.gov> <1992Mar19.220251.29999@cshl.org>
	<ROCKWELL.92Mar20072450@socrates.umd.edu>
	<1992Mar20.184205.4943@watmath.waterloo.edu>
Date: Fri, 20 Mar 1992 23:32:38 GMT
Lines: 53

In article <1992Mar20.184205.4943@watmath.waterloo.edu> ljdickey@watmath.waterloo.edu (L. J. Dickey) writes:

>   The opinions expressed in quotations (1) and (2) appear to be dominated
>   by lack of experience.  Those who have studied higher mathematics,
>   APL, or J, will have learned the power of expressiveness of notation
>   used in these languages.  

I'm familiar with the power of expressiveness, and indeed APL and J
are powerfully expressive in the sense of condensing much semantics
into a small space.  (APL was my first language, almost 20 years ago.)

The problem isn't the compression itself, it's (in part) the
inappropriate medium of linear ascii text.  Mathematical notation,
which Whitehead and Babbage were referring to, has long ago branched
into 2 dimensions and the use of visual, iconic, or graphical
notations to help the reader perceive the relationships between
components.  In fact, it is important to carefully typeset (in the TeX
sense) mathematical notation to give it that clean look that lets the
reader transcend the medium to get the message.

Now, as long as we are stuck with linear ascii text, we have to make
the best of it.  We have very few barely meaningful operator-like
characters to work with, so I think it better to use them sparsely 
rather than jumbled together to confuse the eye.

	 By relieving the brain of all unnecessary work,
	 a good notation sets it free to concentrate on
	 more advanced problems, and in effect increases
	 the mental power of the race.
					  A.N. Whitehead

Excellent quote, but what is the "work" we are talking about here?
The initial learning curve is one thing, but I'm not too concerned
with that as long as it isn't too steep, and the height achieved makes
it worth while.  Much more important is that it be uniform and
statically parsible without complex context sensitivity so that one
can get into the flow of an expression without stumbling on the
notation.

As a general guideline, I think C and Icon make good use of most
operator characters.  The density of notational noise in those
languages is about as much as most people care to see.  A language
like Perl has gone too far in my opinion.

One important problem for an APL notation (to remain anything close to
the original APL concept) is to treat user defined functions in the
same way as infix and prefix operators.  Smalltalk has relevant ideas
here.  Functional languages have ideas for notations of operating on
functions as objects.

Dan LaLiberte
liberte@cs.uiuc.edu
(Join the League for Programming Freedom: league@prep.ai.mit.edu)
