[net.lang.apl] Free APL

ljdickey@water.UUCP (Lee Dickey) (08/28/86)

This item came from Ed Cherlin, the editor of "APL News", (formerly
"APL Market News").

----------------------------------------------------------------------
                          Free APL for Schools

Report #1

     At the APL '86 conference Paul Chapman's offer to create a portable
APL interpreter for school microcomputers found fertile ground and a
committee sprang up to help him to do it.  This is the first report of
the committee's doings and of what needs to be done.
     Paul is a very good programmer in both APL and assembly languages.
He has demonstrated this by writing the Viz::APL interpreter for the Z80
processor with object oriented virtual memory, and then using it to
develop assembly language programs based on new algorithms.  In
particular his Runcode Life does a variety of bit twiddling operations on
a run-length encoding of a large Boolean matrix.  The prototype was
writton in APL and then translated piece by piece into assembler using
Viz::APL's assembly language call function.  Paul has since translated
this Life program into 8086 assembler for the IBM PC and put it in the
public domain.

The Project

     One of the chief obstacles to the spread of APL is the lack of a
version suitable for schools.  In the US schools mainly have Apple II and
Commodore 64 computers, and in several European countries schools have
primarily government sponsored computers (such as the BBC Micro in the
UK).  They all have in common memory of 64K or less.  There are no APL
interpreters for any of these.  Universities have IBM PCs, Apple
Macintoshes, and other more capable computers for which APLs have become
available from STSC, MicroAPL, PortaAPL and others.
     STSC has an APL for Tandy Models 3 and 4; Vanguard used to offer an
APL subset for CP/M (including Apple II with Softcard); Viz::APL is
available for several CP/M systems and has been put in the public domain;
WatCom APL runs on the Commodore SuperPET.  None of these solve the
problem because schools have few of these computers and are not willing
to buy CP/M cards for computers they have.  Furthermore schools will not
usually install APL character ROMs both because of expense and because of
interference with other software.
     The project of getting APL into schools thus begins with the
development of an APL that will fit into the computers in use in the
schools with no hardware changes.  This means that it must be easily
portable and must use available characters only (ASCII in the US and ISO
or national character sets in Europe, APL where installable).  The names
should be stored in a table which can be modified for APL or conventional
characters and for different countries.  It would be helpful to have a
method for supporting alphabets not based on Latin, if it can be done
within the other constraints.
     The chief constraint is the BBC Micro, which requires the program to
fit in 32K of memory in order to have a 10K workspace.  Paul's first
interpreter, Viz::APL, in contrast, occupies about 80K in Z80 machine
language.  It will be necessary to eliminate features and write
exceedingly compact code.  Paul proposes to use FORTH or a similar
threaded code scheme for both portability and compactness, and to use
so-called "magic" functions.  These are primitives written in APL that
are made available in every workspace.
     A quick look through the Viz::APL documentation shows at least the
following that can be eliminated:

files
del editor
virtual memory
graphics
non-standard system commands and functions
screen control functions
workspace compaction
dynamic symbol table

     In addition much of the interpreter can be table driven, and the
more complicated primitives such as matrix inverse and least squares can
be written in APL.  It may be necessary to have only one numeric type
(floating point) to save on arithmetic routines and type conversion.

Meetings

     So much was evident at the start.  Paul mentioned his willingness to
do the implementation to Ed Cherlin, among others.  Ed found that there
was interest and the possibility of funding from some of the national APL
groups and set out to call a meeting.
     The first informal meeting showed that there is indeed enough
interest to set things going.  Paul Chapman, Ken Iverson, Anthony
Camacho, Sylvia Camacho, Howard Peelle, Linda Alvord and Ed Cherlin
discussed Paul's offer, what could be implemented, the necessary funding
and what else was needed besides a working program to get APL into
schools.

1)   Paul will undertake to write a portable APL interpreter, get it
running on the BBC Micro and provide techical documentation, in a period
of five months starting in October 1986 or when funds become available,
whichever is later.  He requires 15,000 pounds (well below his usual
rate) to do this.  The interpreter will conform to the ISO/ANSI standard
for APL as far as possible, with provision for extension on larger
computers than the BBC Micro.  (note:  The proposed ISO/ANSI standard for
APL is complete and will not be changed, but will take some time yet to
complete the required approvals.)  Documentation will include that
required by the standard (implementation dependencies, deviations and
extensions) and instructions for porting to new processors and to other
computers with already supported processors.
     This schedule, if met, will allow formal introduction of the
interpreter at APL '87 in Dallas, and preliminary presentations at the
1987 Tool of Thought Conference of New York/SIGAPL in April, including
demonstrations on live students (using other APLs if necessary).  Linda
Alvord is working on how to do this.  We propose to take a booth at APL
'87, and the organizers have offered their assistance.
2)   Although it was agreed at the meeting not to engage in language
design, it was necessary to choose among existing possibilities,
particularly when discussing the problems of implementation.  A system
function for calling machine language seems to be an essential extension.
     On the other hand the interpreter will not include a file system
(not required or even defined in the standard); data will have to be
stored in the workspace unless machine language is written to access
native files.  It will not include the conventional del editor, which is
quite large and complicated, but will have direct definition and possibly
the FIX system function.  Omission of the del editor is intended to be
the only significant deviation from the standard.  Shared variables and
diamond statement separator, which are optional, will be omitted.  Trace
and stop, also optional, will be included in the standard form.
     This essentially summarizes the conclusions Paul had reached before
talking to anyone about it.  There was general agreement that this was
reasonable.  We agreed in effect that once there was some formal
organization all those who wanted to do language design for this project
could join the appropriate committee, and we would leave further
discussion on the matter until then.
3)   To pay Paul, produce user documentation, generate some publicity,
and create initial course materials for the classroom and for teacher
training, the project will require about 50,000 dollars (33,000 pounds)
and a lot of volunteer labor.  Interest in supporting these efforts (but
no commitments, of course) had been expressed by members of the British
and Danish APL associations and ACM SIGAPL.  We obviously need to
approach the APL groups, the APL vendors, and any other sources of funds
for developing educational software such as governments and foundations.
Ed Cherlin and Anthony Camacho volunteered to get started on this.
4)   The critical step along with writing the interpreter is preparing
the supporting materials so that it can actually be used in the classroom
and planning how to get the word out.  Ed Cherlin offered to work on user
documentation, distribution to user groups and publicity (including
articles in APL News), and Linda Alvord and Howard Peelle volunteered to
work on educational materials.  Ken Iverson has been supporting the use
of APL in teaching for many years and will continue to do so.  Sylvia
Camacho is working on the formal organization of the group as a
non-profit corporation or whatever is most suitable in the UK.
     The user documentation is proposed to be quite different from
existing APL manuals and textbooks.  As it began to take shape in this
preliminary meeting, it is to open with a general introduction to
essential APL concepts including arrays and operators, with only enough
functions to illustrate these concepts.  There will follow a series of
short sections showing how APL can be applied to various topics:  math,
science, language, graphics, business, education and a little taste of
programming.  We want to invite specialists to write these chapters,
preferably people who can show not only how APL can be used in these
areas, but how it can be used for teaching even without textbooks written
in APL.
     The next step was to call an open meeting.  A Birds of a Feather
session was announced, which turned into two meetings on successive days
with about two dozen participants each time.  At these meetings the
nature of the project was explained to those coming in new, and there was
a lively discussion.  The beginnings of an organization were established,
and Viz::APL was put into the public domain to aid our efforts.  The
decision was made to form a charity in the UK (non-profit corporation in
American English) on the grounds that development would be done in
England and also to make it easier to raise the money.  It was felt that
if the organization were based in the US there would be difficulty
getting contributions from Europe, but not vice versa.
     The group recognized that the biggest problem will be getting the
attention of teachers.  It may be that we can get to the computer users
among the students first, and force teacher awareness by subversion of
the classroom.  Certainly an important part of our strategy will be to
put copies of the finished APL in as many user group libraries as
possible, and to get announcements and articles into a variety of
computer and education magazines.

The Committees

     Anthony Camacho and Ed Cherlin were elected co-chairmen.  Several
committees formed:

Technical           Dave Ziemann
Education, UK       Norman Thompson, Sylvia Camacho
Education, US       Howard Peelle, Linda Alvord
Fundraising, UK     Lincoln Gifford
Fundraising, US     Ed Cherlin, Michael Crick
Publicity           Ed Cherlin

     Most of those who came to the meetings offered to join in some part
of the effort, whether as committee members, subversives or otherwise.
Observers were present from STSC, Sharp and SIGAPL.
     Anthony Camacho took names and is putting together a mailing list.
Ed Cherlin is writing up the progress of the project for APL News and for
distribution to members (this report and others to come).  He will also
compile a database for the project including fundraising prospects,
computer and education magazines, schools and colleges now using APL,
textbooks in APL, publicity targets and anything else promising.
     At the second meeting Dominic Murphy, Managing Director of Inner
Product, announced that he was putting Viz::APL into the public domain,
in both source and object code versions.  Paul Chapman is getting
whatever Inner Product still has, and Ed Cherlin has contacted Dave
Saunders, who had the US rights.  Dave will send along copies of source
code and whatever hardware-specific versions he has in his archives.
Contact Ed Cherlin, not Dave, for copies.  For those who have been
wanting to contact Dave for other reasons, his address is PO Box 1365,
Fairfield, Iowa 52556; Telephone 515/472-7321.

Further needs

     We need 5000 dollars by October 1 in order to get Paul started, and
reliable promises of more.
     Our organization needs a name.  Any suggestions?
     Our APL needs a name.  If ISO doesn't object we could call it
International Standard APL, abbreviated IS APL.  Any other suggestions?
     We need communications.  Incoming data can be sent to Ed Cherlin via
IPSA (Group APLMN, name EDMC), STSC (Group WORLD, name EDCH), BIX (name
echerlin), MCImail (name APL), Source (name BCQ982) or Compuserve (name
73527,32).  Outgoing data will be posted on STSC, IPSA and BIX (APL
conference).  If you are on one of these, join the group; if not, tell Ed
or Tony to put you on the mail list, or link up to someone on the
network.
     The status of our proposed product is undecided.  Paul originally
wanted to put it into the public domain, abandoning support.  (He meant
to make it good enough not to need support.)  It has been pointed out
that it might be better to release it as Freeware, available for copying
but still under copyright, or as Shareware, free to copy but with a fee
for registration.  Shareware registration usually includes a nicely
printed copy of the documentation and free or cheap updates, and on the
other side provides us with a mailing list.
     The consequences of keeping copyright are some control over
modifications and commercialization of the product, and the burden of
responsibility.  Perhaps SIGAPL will be willing to hold the copyright.
If an educational publisher wanted to distribute IS APL with books or
courseware, there could be a bit of royalty money in it.  Shareware
distribution could provide some funds for continuing support, including
porting to other computers, without interfering with free use in the
schools.

News!!

     Ed Cherlin attended the SIGAPL meeting at the end of the conference
and was asked to present our project.  SIGAPL wants to support this
effort, but has no funds to spare for the development part.  Quote Quad
can publish some of our documents, and SIGAPL is interested in
distributing the interpreter and other materials.  More discussion is
planned at the August meeting.
     Springer-Verlag in New York is interested in publishing the
documented source code of the interpreter.  It will be a useful computer
science textbook for the "Compilers and Interpreters" course, since so
few real programs are available in source form.
     Holt, Rinehart and Winston (CBS Educational and Professional
Publishing; publisher of Peelle, An Introduction to APL) is willing to
consider further APL books including our proposed user book but has made
no commitment.  A point against them is that CBS made them give up trade
sales, i.e. it will be very hard for bookstores outside universities and
colleges to order from them.