[comp.lang.apl] the aplc compiler

budd@mist.cs.orst.edu (Tim Budd) (10/17/90)

I start to cringe whenever I see my name mentioned in this group.

Let me explain a bit of history of the aplc compiler.
It was developed by myself and, at best, one other student (they come and
go periodically), as just a way to play around with some ideas.  When we
had played enough to write a paper, we would do so, and eventually I had
enough to write a book.  I have never intended to make any money off of the
compiler, and have never billed it as anything other than my own random
doodlings.  The compiler was complete just enough to run the examples we
needed for our research (sort of a prototype system running prototype
programs) and no more.  Certainly it is not useful for students, for
commercial users, or really for anybody other than to look and see how we
did things.

So the reason I cringe is that I simply don't have time to support the
silly thing.  People constantly ask me why I don't implement input-quad for
arbitrary expressions, or why it doesn't run on DOS, or if it works under
AUX, or this that or the other.  My original thinking was that since it
didn't cost me anything to make it freely available, it wouldn't hurt to
give it to anybody that asked.
I have since discovered that, even with all the caveats I can put on it,
even making something available by anonymous ftp raises expectations that
I have time to deal with all these requests, have time to answer my mail,
respond to e-mail requests, and so on; which I don't.
Worse, the fact that it IS buggy, and that half the programs people throw
at it uncover compiler errors, means that my reputation is rapidly declining.
Thus I think I made a serious tactical error in even releasing it in the
first place.

The output of aplc was never as efficient as I would have liked, so I
really think that even if most people got it working they would be
disappointed.  Certainly it is not an order of magnitude better than an
interpreter, or anything like that.
Since The approach I'm working on now is somewhat different, based on
lambda expressions, I don't want to spend a lot of time fixing aplc.  So
my advice to people looking at aplc is; if you want to run apl programs,
get a commercial or share-ware interpreter.  aplc is buggy and unreliable,
probably don't even work on your brand of unix (and certainly doesn't work
if you aren't running unix) and will remain so for the foreseeable future.
--tim budd

ps. Rereading the above I note that it all sounds a bit more negative than I
intend.  The compilation of APL is an interesting intellectual challange, 
and I'm just an ivory tower type more intersted in the intellectual side of
the problem than in the practical problem of getting programs to run!!
And yes, the lambda expression stuff is in even worse shape than aplc.
Currently the parser is written in C (using yacc and lex), the analysis is
written in LISP, and the output is FORTRAN-8X.  This is really ``not ready
for prime time''.