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.