| Abstracts from APL92 International Conference on APL The language in common July 6-10, 1992 at St. Petersburgh (Leningrad), Russia |
Object oriented graphics in APL2by Manuel Alfonseca
The paper describes a general and extensive graphic system in two or three dimensions, built in APL2 by means of the object-oriented programming paradigm. The system fully demonstrates the appropriateness of the language to develop real-life applications using the most advanced techniques of computer science. [Full Text in PDF Format, 472 KB] Nested arrays and operators: some issues in depthby J. Philip Benkard
Following the new direction taken by the ISO Standards Committee meeting in Palo Alto, during August, 1991, an extended APL standard is considered using a nested array basis with particular features from IBM's APL2 program product. APL2 develops from ISO APL with the relaxation of two early scalar constraints. Enclose, disclose, and each are derived from properties of bracket indexing and scalar conformance. Identities connect these new operations with the structural operators. Decisions must be made on what features from other systems, presently implemented or not, should be added to the nested array foundation. Candidates for inclusion are rank and depth operators and various sorts of program definable data types. Comparisons are made between constructs, and tentative conclusions are advanced. [Full Text in PDF Format, 1352 KB] Compiler tools in APLby Robert Bernecky and Gert Osterburg
We present the design and implementation of APL Intrinsic Functions for a Finite State Machine (also known as a Finite State Automaton) which recognizes regular languages, and a Parser which recognizes a subset of context free languages, including SLR(l), LALR(l), and LR(l). These are currently being used on a commercial APL mainframe system as part of a large real-time financial trading system, where they are part of a compiler which translates dealer specification statements into APL functions. Use of these Intrinsic Functions more than doubled the performance of the compiler. In addition to making a significant performance improvement for a large production system, we show these functions to have value in effectively solving many common programming problems, especially those which are inherently or apparently iterative. [Full Text in PDF Format, 890 KB] APL2 implementation of cross-system shared variablesby James A. Brown and Erik Kane
This paper discusses the requirement for intermachine communication and how this requirement is met with APL2's cross-system shared variables. One problem encountered in the design is the mapping of APL2's cooperative peer-to-peer communication model onto a client server data transport mechanism. Another is the ability of APL2's sharing mechanism to address applications on other machines. The goal of the facility is to provide a high level of communication between applications running on different machines while introducing the minimum language extension. [Full Text in PDF Format, 504 KB] 3D layout manipulation functions with a glance to optimization problemsby Renato Capra
APL syntax provides a very simple and expressive way to generate and manipulate simple 3D parametric objects. APL2 nested arrays provide powerful data structures for a compact, readable and executable description of 3D layout scenes. The paper describes a user-friendly interactive graphic system for 3D layout manipulation. The user can define and modify a layout scene by graphical interaction on a 3D perspective projection. User's commands enable change of parameters, 3D transformations and friendly operations that involve position relationship between objects. Commands are translated into "messages" to graphic objects, and the result of the operations is immediately reflected in a modification of the "scene data structure". The system includes the capability to select objects from a catalogue, to build compound objects and to edit sub-objects. The scene data structure is well suited for interface to external graphics rendering programs. Data structure can be extended to include non-geometrical information. Moreover it is possible to apply complex numerical algorithms to geometrical and numerical data. A heuristic algorithm for Satellite Systems Layout Optimization is presented as an example. [Full Text in PDF Format, 893 KB] Globally convergent polynomial iterative zero-finding using APLby Tien Chi Chen
We report the APL study of a global iteration theory for polynomial zero-finding, with the potential to converge from almost any point in the complex plane, as distinguished from classical, "neighborhood" theory requiring the starting guess to be close to the zero being sought. The iteration functions studied involve the function and its first two derivatives, evaluated at the guess Zk. Using the symmetric cluster as a reference, we discovered Newton's method to be unsuitable, and the multiplicity-adjusted Laguerre formula deficient. But a new formula converges to symmetric cluster zeros in just one iteration excepting for roundoff error, possesses cubic neighborhood convergence, and appears reliable for general polynomials. Roundoff errors are reduced through reasonable starting guesses. Reboundingby subclusters, a major cause of nonconvergence is resolved by a local polynomial approach. Most polynomials tested converge within a dozen iterations. [Full Text in PDF Format, 569 KB] Distributed computing with APLby Andreas Geyer-Schulz and Thomas Kolarik
Recent market surveys quote UNIX as the operating system of the 1990s and as the computer industry’s fastest growing market segment. In the next few years we expect the emergence of large UNIX-based workstation networks in both universities and industry. In these rapidly growing environments we envision distributed super-computing on off-the-shelf hardware as an economic alternative to special hardware based technologies. By distributed super-computing we mean treating a network of workstations as a loosely coupled multiprocessor system. For fast prototyping and debugging of distributed applications we suggest APL as the language of choice. We base our vision of distributed super-computing on APL’s familiar shared variable construct which has been extended to allow for distributed, mixed-language applications in large, heterogeneous computer networks. With the help of shared variables we implement several other distributed programming constructs, namely message-passing, client-server networks and distributed shared memory. Finally we demonstrate possible performance gains of this approach for a genetic algorithm. [Full Text in PDF Format, 900 KB] Walks into the APL design spaceby Martin Gfeller
Like any living language, APL is evolving. The design space for its future development is wide open. Some trails into that space are known, for other languages have followed them. We will walk on some trails, visit some sights and also some dead ends. We will see which development areas could solve some old problems of APL, without changing its fabric. The goal of the paper is to enable the reader to explore the APL design space on his or her own. To that end I will point the reader to some good books and articles about problems and solutions only touched upon in the paper. [Full Text in PDF Format, 860 KB] The CTalk programming language: a strategic evolution of APLby Jean-Jacques Girardot
This document presents CTalk, which is a new programming language quite different from APL itself. CTalk is an attempt to combine the "best" features of APL, but also of other languages such as Lisp [9], and offer a language that looks "satisfactory" according to the criteria of the mainstream of computer science. The most important features of CTalk are its syntax, which is very close to the one of the C programming language, the adoption of fundamental concepts that were missing in APL, such as lexical binding, but also the integration of a wide range of array operations that are borrowed from APL./par> It is shown here that CTalk can be implemented more simply and more efficiently than APL, while keeping all the power of APL operations, and being an acceptable alternative to APL itself. [Full Text in PDF Format, 830 KB] An interactive approach for extending IEEE arithmetic: auxiliary processor AP87by Willi Hahn and Karlheinz Mohr
The auxiliary processor AP87 is designed for use with APL2/PC. Together with it, it offers an interactive system for IEEE-arithmetic enhanced with routines for exact sum and dot product as well as interval and adaptive multiprecision arithmetic. The features of AP87 are also available as link libraries for other languages like C, FORTRAN, PASCAL. [Full Text in PDF Format, 437 KB] Left to its own devices, APL plots on the busby Curtis A. Jones
The IEEE-488 General-Purpose Interface Bus is a convenient vehicle through which APL can run a variety of devices and computers. This paper shows how a PC can be used with APL as a device on the bus, in contrast to the PC's more usual role as system controller. As an example, an APL workspace that emulates an x-y plotter attached to the GPIB is shown. This illustrates the GPIB providing input to an APL workspace, and techniques by which APL can report the status of the device. [Full Text in PDF Format, 719 KB] Writing Macintosh "applications" in APLby Warren G. Julian
This paper briefly describes some features of a student enrolment and record system written for use on Macintosh PCs using APL.68000. The emphasis is on the development of the interface between the user and the APL file environment. The paper describes and illustrates the development of "applications" which use the Apple conventions and which appear like another Macintosh applications. This is achieved through the use of a series of powerful cover functions which access the Macintosh's primitives for file-handling, event-handling, windows, menus etc. and which use Quickdraw primitives for graphics and text output. [Full Text in PDF Format, 705 KB] Towards the ultimate APL-TOEby Gérard A. Langlet
This paper presents the results of more than 10 years of transdisciplinary work. The initial idea was: can the laws of Nature also been found of rebuilt, independently from theoretical research in Physics (on elementary particles and matter in general), also in the field of Computer Science i.e. Information Processing? Pressing a lemon reveals its juice and stones; if one "tortures" matter, the components of its (first electrons, neutrons and protons, then quarks and gluons at a lesser order of magnitude) may be detected. What will appear if one tries to compress algorithms instead of atoms? APL seemed to be the ideal candidate for such a systematical investigation that led to some intriguing results which first proved to be indeed strongly connected with the conventional laws of Physics, then might enlighten in a new way many apparently-independent observations and studies, in a variety of fields such as neural networks, natural-language and signal processing, fractal geometry, Biology and Genetics inter alia. [Full Text in PDF Format, 1647 KB] Cannibals and missionariesby Ruby Lim
This paper describes the game of Cannibals and Missionaries modelled using APL68000, It constitutes the original version of a student project report for a fourth-year mathematics course titled "Operations Research Modelling". [Full Text in PDF Format, 523 KB] Multiple choice programming: an APL approachby Edward Y. H. Lin
In this paper, we introduce a set of APL code for the optimization in multiple choice programming using the special-ordered-set branch-and-bound procedure incorporating the partitioning strategy of weighted-mean method. [Full Text in PDF Format, 340 KB] Porting APL-programs via ASCII-transliterationby Johann Mitlöhner
A scheme for translating APL characters to ASCII text is introduced, and an APL application is developed which reads and writes objects to and from files using the scheme. The system is available freely for several APL dialects; it can be used to port APL applications across different environments. The translation scheme used is proposed as a standard for the ASCII representation of APL characters, and feedback on this scheme is invited. [Full Text in PDF Format, 612 KB] Using SCCS to manage APL2 development projectsby John M. Mizel
As workstations become more prevalent and networks expand, APL developers will need source control tools when working together on common programming projects. SCCS (Source Code Control System) is a tool found on UNIX systems used in development projects to control changes made to source code and documentation files. Putting a source file under the control of SCCS creates a single file containing the complete source and history of all modifications with comments. There is a set of SCCS commands to access this file for signing out modules for editing, merging in new changes, providing reports, and even recreating any prior version. Though SCCS is typically used for projects being written in languages like C or Fortran, it can be used in the development of APL2 applications. In trying to use SCCS, there are some problems unique to APL. Specifically, APL's potential to use all 256 ASCII values does cause problems for SCCS. This paper will provide solutions to these problems, and describe how to use SCCS to manage APL2 application development efforts in a networked environment. [Full Text in PDF Format, 540 KB] Differential equations are recurrence relations in APLby Richard D. Neidinger
An mth-order differential equation y(m)= f(x,y,y’,...,y(])))) is itself a numerical recurrence relation that can be iterated to produce the Taylor series solution. The purpose of the APL in this paper is to demonstrate this principle in it’s simplest form, This is accomplished as a direct application of the automatic differentiation workspace. [Full Text in PDF Format, 668 KB] APL as a tool for scientific forecastingby Andrew L. Pakhomov, Valery F. Kalinin, Boris A. Makeev, and Alexandra V. Zueva
This report is devoted to the possibility of using APL*PLUS/PC in the creation of a prototype of an Expert System (ES), which in its turn, is supposed to be a help in effecting forecasting and in the determination of the state of the development of different fields of science, engineering, and technology on the basis of the analysis of the Documental Information Stream (DIS). [Full Text in PDF Format, 539 KB] An APL2 tool box investigating Schwarz methodsby Christoph Pospiech
A Schwarz method is an iterative algorithm for aggregating the solution of an elliptic PDE on some domain &OHgr; from repeated solutions on overlapping sub-domains. This general definition incorporates many algorithms which differ in the sequence of sub-domain solutions and the way this information is aggregated. This calls for a tool for investigating and comparing these different algorithms at least for a model problem without the tedious work of programming. The idea is to have simple building blocks for formulating the algorithm in terms of sub-domain solutions. On the other hand this tool should give the user as much freedom as possible, still maintaining ease of use. APL2 was chosen as the base of the tool box because of the interactive environment, the graphics facilities, and the hot spot and run time analysis ready at hand. For maintaining performance, the CPU intensive parts are taken from the ESSL library or coded directly in Vector Assembler. [Full Text in PDF Format, 714 KB] A multi-national sales planning system in APLby Steven I. Promisel
A large multi-national chemical company has been using an APL-based logistics planning system called LOGISTICS*PLUS since 1984. Over the past five years, the original US-based system was extended into Canada and Europe. Recently, business units in Europe asked STSC to develop a sales planning system for LOGISTICS*PLUS. The developed system is used by many people with minimal training from many different countries. The software needed to be easy to access and easy to use. The purpose of this paper is to discuss the requirements of a system that needs to function across international borders. In addition, I will review the implementation of the system in regard to the need to manage multiple currencies, languages, product orientations and time-phased planning. [Full Text in PDF Format, 613 KB] Do Russian children like APL2?by Alexander O. Skomorokhov
This paper describes the experience of teaching APL2 and computer science based on APL2 to thirteen and fourteen year old children. The paper analyses and illustrates teaching goals, curriculum, teaching methods, and common lesson plans. Examples of learning tasks and APL2 functions are presented. The benefits of APL2 for the education of children are discussed from the viewpoints of psychology, learning motivation, the integration of the teaching process, and practical effectiveness. [Full Text in PDF Format, 1067 KB] Neural networks in Jby Alexei N. Skurihin
This paper presents an attempt to implement an Artificial Neural System (ANS) in J, a significantly simplified and enhanced version of APL [1,2]. Neural networks are fairly straightforward to program in a language such as J. A software tool (based on C and J) for the development and simulation of neural networks is presented in this paper. It provides a rudimentary platform for implementing ANS systems. [Full Text in PDF Format, 268 KB] Jogging with APL along the shortest pathby Moshe Sneidovich and Suzanne Findlay
In this paper we examine the classical shortest path problem and illustrate the modelling issues involved in formulating APL codes for a number of generalizations thereof, including multiobjective problems. We also comment on APL's ability to cope with algorithms of this type. [Full Text in PDF Format, 571 KB] Challenging the mathematics curriculumby Walter G. Spunde
Ready access to computing power through APL opens new avenues for mathematical experimentation and new strategies for developing concepts in the teaching of basic engineering mathematics. It is argued that the effective use of APL implies re-structuring of the curriculum and a revision of examination procedures. [Full Text in PDF Format, 660 KB] WSDM: Weighted sparse distributed memory prototype expressed in APLby Alvin J. Surkan
A functional style application of APL notation succinctly describes the architecture and principles of operation of one kind of connection-based computer. In the future it is expected that these machines will have thousands of processors and large arrays of dynamic connections. APL programs running on von Neumann computers now provide precise descriptions of connection-based machines which are convenient for exploring the potential of connection-based computation. Experience with radically new structures and different principles of operation for neural network problem solving can be obtained using virtual machines provided by software. Virtual machines are described by functions programmed on conventional computers. Two adaptive variants of the sparse distributed memory or SDM (Kanerva [1991]) show improved efficiency. The demonstrated superiority of Kanerva's new pattern weighting idea can be obtained by improved coding of the input patterns. This coding is done by generally defined preprocessing of features of representative binary input patterns. Transformed input patterns select addresses which pack distributed memories more efficiently. Coding is done by first computing customized weight vectors for each input pattern vector. Individual weighting of each pattern leads to more uniform utilization of the addresses and their corresponding memory connection weights. The derived pattern weights improve discrimination between pairs of similar inputs with few significant differences. This paper is to provide the APL community access to a concise symbolic description of Kanerva's weighted SDM machine. APL's rich set of computer modeling and exposition tools have the potential of markedly accelerating software and hardware development for array-base connectionist computing. [Full Text in PDF Format, 687 KB] Some proposals for APL2 specification of statistical algorithmsby Norman Thompson
Software engineers use specification languages to allow programmers to reason about programs and their correctness at any level of detail. The APL2 language and its data structures have some striking affinities with the apparatus needed to specify statistical algorithms and it seems reasonable to exploit these by defining a common standard, the adoption of which will greatly enhance the ability of statisticians to communicate algorithms both amongst themselves and in the world at large. This paper proposes some rules and conventions which might form the basis of such a standard and illustrates where there are particularly happy marriages between the requirements of specification of statistical algorithms and the language characteristics of APL2. [Full Text in PDF Format, 850 KB] A Bézier curve builder implemented in APL2by Gustav Tollet and Peter M. Harrison
The Bézier representation of curves is commonly used in computer graphics. A different, less advanced way of representing a curve is that of using a polyline, i.e., a sequence of short straight lines. This paper describes a "curve builder" that converts a polyline into a sequence of one or more Bézier curves. Part of the method is based on mathematical groundwork by Pat Beirne of Corel Systems Corporation, with extensions by the authors. The project was implemented in APL and could not otherwise have been completed with the resources and time available. [Full Text in PDF Format, 694 KB] Porting and optimising star: a case study of suffering and surfacingby F. H. D. van Batenburg, V. Bos, J. J. M. Riethoven, J. P. Abrahams, and C. Pley
This paper has three main parts. The first part is a description of our project STAR. It explains what our program does and what makes it special compared to other similar programs. The second part pertains to the porting of our program to other platforms. It enumerates the errors of our ways, how we struggled to overcome them and what we learned in the process. The last part narrates our strategy to optimise the program. We will explain why we deviated from the general accepted strategy to optimise those parts with the highest potential gain. [Full Text in PDF Format, 932 KB] Matrix operations over integral domains using nested APLby Robert G. Willhoft
This paper deals with the use of APL to solve matrix theory problems with elements that are members of an integral domain. Two types of integral domains are used to illustrate the methods developed in this paper, integers (Z) and polynomials with real coefficients (Re[X]). However, the method of approach can be easily generalized to include other integral domains. APL2, due to its generalized data representations and rich functional semantics, was chosen to implement the solution to this problem. For each integral domain presented, a method of data representation is developed, and implementations of the necessary "primitive" functions (Addition, Multiplication, Division, and Comparison) are given. Finally, this newly developed system of functions and data representation is used to solve several of the most common Matrix Algebra problems. A simple recursive determinant and an implementation of Euclid's Greatest Common Divisor Algorithm are presented. Then, with these building blocks, a general algorithm for finding Smith's Canonical form and an algorithm to find the Invariant Factors are presented. [Full Text in PDF Format, 678 KB] Petri-net evaluation using APL2by Robert G. Willhoft
A Petri net is a graphical and mathematical modeling tool useful in the analysis of concurrent, asynchronous, distributed, parallel, nondeterministic, and/or stochastic systems. In addition, interest in Petri nets is increasing in the software community to model the behavior of parallel computer programs. The introduction of timed Petri nets allows system or program performance to be estimated as well. This paper begins with a general discussion, including definitions, for both ordinary and timed Petri nets. Several analysis tools are outlined for ordinary and timed Petri nets including analysis of the incidence matrix, coverability tree, firing diagram, and the GRID (Graph of Reachable Instantaneous Descriptions). This paper then introduces a method for representing Petri nets in APL2 and defines an easy input method. An APL2 implementation of each of the above analysis tools is given. These functions are described in detail as to their operation. Several examples of their use are given including examples of deadlock detection and performance estimation. [Full Text in PDF Format, 1143 KB] EZHONE: a perfect application for APL2 name associationby Scott Williams, Howard Smith Jr., and Ray Parnaby
APL2's name association facility, accessed through the []NA system function, provides a vehicle for executing programs which reside outside the APL2 workspace. These programs may be written in APL2 or other languages. EZHONE is an IBM internal VSAPL application used by marketing and sales representatives. This paper discusses EZHONE, its conversion to APL2, and how execution of applications by the new interpreter depends on the name association facility. |

Last Update: July 20, 1998
For questions, problems, or comments regarding this website, please send
email to:infodir_sigapl@acm.org