APL96 Invitation and Abstracts
Vector 12:4, page 6
Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 6
APL96 Programme Committee Meeting at Lancaster, Saturday 16th March 1996 at the Lancaster House Hotel¶
Present were:
Adrian Smith (Causeway)
Philip Benkard (IBM, retd)
John Scholes (Dyadic Systems)
Dr Alan Sykes (University of Swansea)
Morten Kromberg
Gitte Christensen (both of Insight Systems)
Note that this followed a preliminary meeting in New York between Adrian Smith, Mike Kent, Philip Benkard and Lynne Shaw on Saturday 2nd March, where the general shape and content of the conference were also discussed.
Programme Outline¶
The meeting began by discussing the basic layout of the programme grid, and agreed on a standard format for each day of a morning plenary, followed by a Vendor forum, followed by a short session when each workshop leader would spend no more than 15 minutes introducing the material to be covered that afternoon. This takes the morning through to coffee break, after which we allocated two parallel tracks for submitted papers. Where possible, these papers will be programmed to support the material in the afternoon workshops.
Lunch was intentionally left clear, as several of us had received feedback from San Antonio that delegates had missed out on valuable ‘networking’ time because of the complete loss of lunchtime to vendor forums.
In the afternoon we worked with four parallel tracks: two of these were allocated to ‘hands-on’ workshops, one to a more traditional ‘classroom’ tutorial, and one to submitted papers and ‘APL Success Stories’ run sequentially. Not all the afternoon paper slots are currently filled with accepted material, so we would encourage potential authors to contact us with any ‘late-breaking’ APL stories.
The afternoon programme is scheduled to run until 7.00 (with a half-hour break for tea) with the option for enthusiasts to resume in the hands-on labs later in the evening. If workshops are heavily over-subscribed, we will need to look at the option of hiring more lab space and repeating sessions as required.
In general, the programme committee did not react favourably to the suggestion of ‘panels’ or ‘debates’, although the possibility of some ‘panel-led’ workshops (for instance on portability issues) was left open if suitable topics are suggested.
Strategy for Proceedings¶
It was agreed to provide delegates with a ring-binder containing refereed papers in the normal proceedings format, and workshop notes as they became available during the conference. The final proceedings will appear as the Autumn or Winter QuoteQuad, and will include additional material arising during the conference.
Programme Highlights¶
APL96 is planned to be the best training opportunity this year for anyone involved in designing, migrating or implementing the APL systems of the future. We have major ’hands on’ workshops on GUI programming in Dyalog and J3 from Dyadic, Strand and Causeway. We have Timo Laurmaa running a full afternoon session on TCP/IP programming (APL over the Internet); Morten Kromberg will be running tutorials on ODBC access and setting up APL as an ODBC server; Norman Thomson and Philip Benkard are sharing a tutorial stream on nested-array programming.
Heinz Roggenkemper of SAP AG will explain why one of the world’s largest software companies has chosen APL for graphical configuration tools, and Jack Rudd will show us how APL2 has been used to achieve unheard-of accuracy in civilian GPS systems. With submitted papers on everything from whale songs to economic modelling in Russia to the use of J as a teaching language - we plan to have something for everyone at APL96.
Abstracts of Accepted Papers¶
At the time of writing, we still have a number of papers under review. This list probably represents just over two-thirds of the papers which will be presented at APL96. The sequence numbers have been allocated in no particular order.
[002] Stephen M. Mansour — How to Write an APL Utility Function (Workshop)
In today’s business climate, re-usable code is essential. But many programmers often don’t use existing utility functions because they find them difficult to use or not general enough. Also, they may not know that such functions exist. Instead, programmers often clone lines of code from other functions. This results in sloppy, undocumented code which is full of errors. In order to avoid this, the author of a utility function must make an extra effort to ensure that his function is designed properly.
APL is easy to learn because its primitives behave consistently, work on arrays as well as scalars, can handle edge conditions, often use default values, and are totally encapsulated from the user. We can learn from this by designing utility functions in the same way, allowing them to become an extension of APL and its set of primitives. This workshop will show some design techniques and examples. Attendees will be encouraged to bring in their own examples.
[003] Manuel Alfonseca — Representation of Fractals by means of L-Systems
Fractals can be represented by means of L-systems (Development Grammars), together with a graphic interpretation. Two families of graphic interpretations have been used: turtle graphics and vector graphics. This paper describes an APL2/PC system able to draw fractals represented by L-systems, with both graphic interpretations. A theorem is proved on the equivalence conditions for both interpretations. Another point shown is the fact that supposed deficiencies in L-systems that have prompted proposals of extensions are really deficiencies in the graphic translation scheme.
[004] S.M.Obraztsov et al — Joint Deterministic/Adaptive Method for Economic Forecasting
Economic forecasting is of great importance when some economic mechanism is changed rapidly as in Russia nowadays. Any economic system is a deterministic/stochastic entity of great complexity. Because of this, informative models which offer the interplay of the most significant factors are inadequate for satisfactory long-term forecasting.
The paper describes a forecasting procedure based upon the joint use of formalized method (numerical simulation) and adaptive method (simulation with neural network) when the model structure is formed by incoming information. Combination of forecasts selected by experts allows to make the most likely forecast from the "fan" of probable tracks. APL-implementation of this procedure has been used for the forecasting of municipal expenditures.
[006] Alan Graham — 0: a Simple Modern Array Programming Language System
0 is a programming compiler/interpreter and environment for Microsoft Windows 95 and NT. The session manager is written in Microsoft Visual Basic. Microsoft Word or WordPad can be used as a program editor. The 0 compiler is written in 0 and the runtime interpreter is J.
0 is a descendent of APL, APL2, and APL0. 0 preserves the qualities that made original APL great: fast array-based computation, compact symbolic mathematical notation, simple expression-oriented functional language, scalars (character and numeric) are abstract (internal details are hidden), computer management (declarations, space management, compile and link, etc.) is automatic.
0 eliminates deprecated and redundant features. Rank and Depth are merged: a vector of vectors is identical to rows of matrix. Many modes are eliminated: no selectable index origin, print precision, comparison tolerance, or print width. Shared variables and auxiliary processors are removed: files are arrays, asynchronous processes are controlled by function calls.
0 extends the simplified APL2. New classes of scalars: expression, string, fault, and nil. New operators: apply, axis, compose, power. New functions: count, convert. New library functions: if, else, do, while, until, for take expressions as arguments and provide, using C-like syntax, control-flow functions. An APL/ASCII one-to-one mapping is built in for transfer and for devices that do not support alternate character sets, for example _i is a verbose form of iota.
[007] John E. Howland — Using J as an Expository Language in the Teaching of Computer Science to Liberal Arts Students
APL and J are seldom, if ever, used in the teaching of college or university courses. As a result, students rarely experience the benefits of learning and using these languages which are well known to expert practioners of APL and J. One outcome of this alarming fact is that APL and J are destined to be nothing more than, perhaps, obscure languages used only by a small number of experts in a few selected fields. Since few new people are being trained, uses of APL and J may cease completely because companies cannot afford the risk of systems based on a technology which has no skilled labour force.
Recently, the author has developed a new laboratory-based computer science course for liberal arts students in which students are introduced to 13 core computer science topics. Programming language is used in an expository fashion to describe each topic by building simple working models of each topic. These models are then used as the basis of laboratory experiments in a co-requisite laboratory course. Students are not taught programming in this course, but rather, are taught just enough of the syntax and semantics of the language to be able to read and understand the exposition and models. Initially, Scheme was used in the lecture notes and laboratory materials developed for this course. Recently, however, an experiment is under way to replace the use of Scheme in this course by J. The development of this course and laboratory was funded by the Meadows Foundation and NSF grant DUE 9452050.
[010] Linda Alvord — The Derivative is for Dancing
This paper uses J to illustrate the meaning of the derived function or a derivative which is a fundamental concept in the study of calculus. To make the idea more understandable we can demonstrate the notion using visual representations. First fill polygons and consider them as graphic objects. Then present them at successive intervals along the curve. Next, rotate each polygon by an angle obtained from the derivative. This will cause the object to appear to turn in as it appears to move along the curve. Using animation techniques of drawing and erasing the figure, it will appear to move appropriately along the curve. When the derivative is incorrect, the figure will appear to spin aimlessly along the curve. Hopefully this aspect of the "slope of the curve" will motivate and enliven the study of the derivative. In addition, it may provide an interesting twist to a study of animation.
[012] Johann Mitlöhner — Classifier Systems and Economic Modeling (possible workshop)
Human economic decisions are characterized by a number of factors which make them difficult to model with standard mathematical tools. Decisions can be more easily described by a set of rules, and some of them may be ‘rules of thumb’. Economic behaviour is adaptive, in that people are able to adjust to a changing environment. It is argued in this paper that the classifier system framework is a suitable means of modelling human economic decisions. A case of a simple economic decision of finding an optimal price is discussed, which is later made more complex by introducing an input variable that affects the optimal price. It is shown that classifier systems can be used in both tasks, and their performance is compared to human decisions in the same set of circumstances.
[013] Jack Rudd — Real-time APL Prototype of a Wide Area Differential GPS System
The power of APL2 was applied to design and prototype a wide area differential GPS system in a matter of months. This system is designed to have all the capabilities of the GPS control segment, but with dramatically more accurate geolocation estimates for civilian users. The prototype was implemented on a single workstation and demonstrated in real time with live GPS satellite signals.
An APL2 simulation of the main elements of the system was created in two labour months. This included precise simulation of satellite orbits, sensor measurements and the random walk of atomic clocks, as well as measurement processing and state estimation. A full APL simulation, including user algorithms, was completed in two more labour months. Then the simulation was evolved to process recorded GPS satellite measurements instead of simulated measurements. Particularly complex processing of the actual measurements was found necessary. This evolution was completed in less than three months.
An effective graphical demonstration using AP207 was created on a laptop computer for marketing the system to potential customers in the international market. Real-time processing of measurements simultaneously gathered from five GPS receivers was achieved, demonstrating user location accuracy of a very few metres.
[014] Manual Alfonseca — User Interfaces with Object-Oriented Programming in APL2
The power of general arrays is used to provide APL2 with object-oriented capabilities, which are used to generate user interface object classes such as windows, menus, dialog boxes and messages, among others, all of which can be created as persistent objects. This makes very straightforward the development of user interfaces for real applications.
[018] Robert Bernecky — APEX: The Peak of APL Parallel Performance
APEX, the APL Parallel Executor, is a high-performance parallel compiler for an extended subset of ISO Standard APL. APL programs compiled with APEX run up to 1300 times faster than interpreted APL, and are often competitive with FORTRAN and C. APEX also automatically parallelizes code for execution on multi-processor platforms including the CRAY C90 and the Silicon Graphics SGI Power Challenge.
This tutorial will be given in two 1 1/2 hour segments. The first half be of general interest. The second half will be more technical, and explore APEX internals. If all goes well, attendees will receive a floppy containing compiled versions of popular APL utilities. If time permits, we will compile a few simple applications.
Who should attend?
- Managers who are responsible for large APL projects
- APL programmers who are interested in high-performance APL
- Power APL users who need parallel computing capability
- Interpreter and compiler designers interested in compiled APL
What will I learn?
Part 1:
- What is APEX?
- How does APEX perform compared to interpreted APL?
- How does APEX perform compared to FORTRAN and C?
- How much parallel speedup does APEX get?
- Why does APEX-generated code run so fast?
- What can APEX do for me?
- What can’t APEX do for me?
- How do I link APEX code with C or FORTRAN?
- How do I build DLLs with APEX?
- What platforms does APEX run on?
- What is the future of APEX?
Part 2:
- How does APEX work?
- Why is holistic design required?
- Where does all that speed come from?
- The role of SSA and SISAL in APEX
- APL design issues — semiglobals, functional control structures, value error
- The role of synergy and loop fusion
[019] Phil Chastney — Multi-dimensional Databases at Eurostat
At Eurostat we are developing a Multi-dimensional Database using APL for the front-end with an SQL interface to a relational DB at the backend. There will be a presentation of the concept of "dimension" and the underlying ideas and techniques of MDDs.
[020] Gérard Langlet — The Least-Action Principle (LAP) in APL
The least-action principle, one of the fundaments of Physics, has never been given a definition for computer science. APL is the best notation to try to reformulate it in modern terms.
[021] Per Gerlov — Song of the Whale (Parallel Processing using APL2)
At the Technical University of Denmark APL2 has often been used in a credit course. The objective of the course exercise has been to analyse the vocalisations of Sperm Whales. In January 1996 the course was run again, this time using the IBM SP/2 supercomputer to solve the problem. An additional objective in this course was to utilize the possibilities of this powerful parallel computer.
During the three weeks of the course the students learned the APL language, solved a nontrivial problem, used a very powerful computer for the solution and wrote a detailed report.