Published by Association for Computing Machinery
Print ISSN: 0163-6006
This paper summarises some preliminary experimentation with using Microsoft Access as a vehicle for storing APL functions definitions separately from the workspace. The work appears to offer some advantages in terms of improved code portability between interpreters.
This paper gives a few remarks on the development of mathematical notation and on some of its principal characteristics in its present form. It then gives by way of contrast the main features of APL as a notation. The birthday problem is discussed ...
Many times in the course of solving a problem in APL it becomes necessary to transpose an array in conjunction with restructuring. The interpretation of a two-dimensional matrix as a block matrix, i.e., a matrix of matrices, which in APL could be modelled as a four-dimensional array, is such a case. This paper presents many propositions which should help the APL user form a better understanding of the transpose operation in conjunction with the row-major representation which APL uses for matrices. Contributions of this paper include the concepts of partial ravel and refinement of arrays, the collapsing of chains of transposes and restructures, and a theorem characterizing the cycle structure of the permutation of a vector induced by a two-dimensional transpose operation. The solution to the block matrix problem is included as an appendix.
Artificial life based on simulation evolution is a flourishing field. One of its most publicized achievements of the nineties was TIERRA, by T.S.Ray. APL2 has been used successfully to implement a similar simpler artificial life application that shows most of the interesting features of TIERRA in an efficient way, providing a modifiable environment where it is easy to experiment. Introduction The simulation on a computer of artificial life subject to Darwinian evolution has been an important matter of research for a long time [1]. During the 1970s, this line of thought gave rise to the genetic algorithms [2-5], which became an important area on its own right, which has given rise to interesting commercial applications. In 1991, Thomas S. Ray made news in the general press with his TIERRA artificial life system. Essentially, what he did [6] was design and emulate a special virtual machine with 32 instructions, most of which are typical machine instructions (incrementing a register, a...
This paper describes the design of a hybrid language which combines the features of an array processing language and lisp dialect in a consistent and useful manner. This language, APROL (Array PROcessing Lisp) is derived from the J dialect of APL and the Scheme dialect of Lisp. The base syntactic structure is taken from Scheme, while the array processing features are based on the J programming language. A prototype implementation has been made and some experiences with this implementation are described. This implementation uses J as an imbedded array processing engine in a Scheme intrepreter/compiler. The language as specified provides a set of data types and manipulation tools which is more diverse than found in either Scheme or J. APROL allows the programmer to apply array processing functions to lists of arrays in the Scheme style and list processing functions to arrays of lists in typical J style. The result is a language which not only brings array processing capabilities to Schem...
This article describes how array predicates were used to reduce the computational complexity of four APL primitive functions when one of their arguments is a permutation vector. The search primitives, indexof and set membership, and the sorting primitives, upgrade and downgrade, execute in linear time on such arguments. Our contribution, a method for static determination of array properties, lets us generate code that is optimized for special cases of primitives. Our approach eliminates runtime checks which would otherwise slow down the execution of all cases of the effected primitives. We use the same analysis technique to reduce the type complexity of certain array primitives. 1 Introduction The search for terse, elegant algorithms is part of the APL mythos. This passionate quest arises, in part, from APL's history as a language for teach- This paper originally appeared in the APL98 Conference Proceedings. [Ber98] ing mathematics and from the fact that array-based languages, such...
Most of the existing high-level array processing languages support a fixed set of pre-defined array operations and a few higher-order functions for constructing new array operations from existing ones. In this paper, we discuss a more general approach made feasible by Sac (for Single Assignement C), a functional variant of C. Sac provides a meta-level language construct called with- loop which may be considered a sophisticated variant of the forall-loops in HPF or of array comprehensions in functional languages. It allows for the element-wise specification of high-level operations on arrays of any dimensionality: any set of high-level array operations can be specified by means of with-loops and be made available in a library. This does not only improve the flexibility of specifications, but also simplifies the compilation process. By means of a few examples it is shown that the highlevel operations that are typically available in array processing languages such as Apl or Fortran90 ...
APL and J are seldom, if ever, used in the teaching of college or university courses. 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 945205...
In 1993, Austria had the highest number of bankruptcies since 1945. The total liabilities came to approximately US$3 billion. Powerful tools for the early detection of company risks are very important to avoid high economic losses. Artificial neural networks (ANN) are suitable for many tasks in pattern recognition and machine learning. In this paper we present an ANN for early detection of company failures using balance sheet ratios. The neural network has been successfully tested with real data of Austrian private limited companies. The research activities included the design of an APL application with a graphical user interface to find out the relevant input data and tune the ANN. The developed APL workspace takes advantage of modern windowing features running on IBM compatible computers.
Dynamic programming is used infrequently by APL programmers, in spite of its ability to reduce the computational effort required to solve many problems. This paper uses the String Shuffle problem as the basis for a comparison of brute force, recursive, and dynamic programming algorithms. Simple algorithms for each of these approaches are designed and evaluated, then individually optimized and reevaluated, to show the benefits of dynamic programming. The dynamic programming algorithm is then recast to use flow control structures recently introduced into ISI J and APL*PLUS III. Use of control structures in conjunction with dynamic programming results in orders of magnitude performance improvement over brute force and naive recursive algorithms. APL*PLUS III control structures are shown to provide a performance improvement of up to 30% over GOTO-based loops. This paper originally appeared in the ACM SIGAPL APL95 Conference Proceedings. [Ber95] Keywords dynamic programming, flow control...
APL as a language has always provided a high level of abstraction to its users. Only in the field of communication have APL channels -- called shared variables -- been restricted to at most two partners. As most distributed applications demand more than two interacting programs, APL users had to apply their own techniques, like client-server, to develop applications that share information among more than two partners. This paper presents a proposal to move the administration of shared memory from application to language level: An extension to the well known shared variable protocol to share memory among more than two partners. Two applications of this distributed shared memory system are presented: A combinatorial optimization problem that is distributed among the machines of a workstation network and an application for students that learn APL in a working group are based upon a prototype implementation of the proposed protocol.
Artificial neural networks are suitable for many tasks in pattern recognition and machine learning. In this paper we present an APL system for forecasting univariate time series with artificial neural networks. Unlike conventional techniques for time series analysis, an artificial neural network needs little information about the time series data and can be applied to a broad range of problems. However, the problem of network "tuning" remains: parameters of the backpropagation algorithm as well as the network topology need to be adjusted for optimal performance. For our application, we conducted experiments to find the right parameters for a forecasting network. The artificial neural networks that were found delivered a better forecasting performance than results obtained by the well known ARIMA technique.
The proponents of Control Structures1 claimed that adding them to APL2 would improve both the organizational structure and the readability of APL code, but in my experience this has not occurred. Instead, I find previous obstacles to readability have often simply been supplanted by different obstacles and prior forms of structural awkwardness by new architectural excesses.It appears to me that some of these changes3 represent a loss of "APL-ness" in coding style, specifically those characteristics of conciseness, modularity, and linearity.This paper discusses specific changes in style and the difficulties I feel they create, and then presents various proposals for improving the situation. The ideas presented are illustrated with examples taken from actual code written by professional APL programmers.4
APL/1130 was implemented overnight in the autumn of 1967, but it took years of effort to make that possible. In 1965, Ken Iverson's group in Yorktown was wrestling with the transition from Iverson Notation, a notation suited for blackboards and printed pages, to a machine-executable programming environment. Iverson had already developed a Selectric typeball and was writing a high-school math textbook. By autumn 1965, Larry Breed and Stanford grad student Philip Abrams had written the first implementation in 7090 Fortran (with batch execution). Eugene McDonnell was looking for applications to run on TSM, his project's experimental time-sharing system on a virtual-memory 7090. With his help, Breed ported the Fortran code, added I/O routines for the 1050 terminals, called the result IVSYS; and Iverson Notation went interactive.
On January 1, 2000 many applications will stop working properly. Most utilities and applications express the year as the two low order digits of the full representation of the year so that dates in the new century will appear to occur before dates in the old. When this phenomenon occurred in the past humans adapted quickly, and no great dislocation occurred.Unfortunately, the computer is not as adaptable or reasonable as the human.This paper presents one possible solution to the problem, at least in the APL environment. This solution involves replacing date fields in files and records with a pseudo-Julian day number (PJD). This number permits the analyst to use date information arithmetically to determine the day of the week, the period between dates, create lists of dates, etc. The PJD is easily converted to or from human-usable canonical date forms. Finally, the technique defers difficulties due to changes of year, century, millennium, etc. indefinitely.In the later sections of the paper some thoughts on possible extensions to the leap-year algorithm are discussed. The new terms would improve precision without affecting the past or present. Finally, sample functions which support and utilize this “perpetual” calendar are given.It must be emphasized that this paper represents a solution only within the APL environment. The concept is applicable in any environment, language or system but only if it or a similar solution is adopted before December 31, 1999. If we users of APL recognize and fix the problem in our environment while the rest of the computing world ignores it, the problem will still affect everyone, including us.
Solutions to the problem of typesetting APL dialects were so far severely constrained, for they always relied on specific transliteration schemes or workspaces for automatic transliteration available for only a few interpreters. In this article I introduce an alternative solution to the problem of typesetting APL dialects which does not require transliteration of primitives. Instead, I implement a direct typesetting approach using a Type 1 (or outline) APL font, an encoding vector, and a LATEX package named listings. I finally present a series of examples in order to illustrate the typesetting of APL snippets, code segments, lists of standing files, and their straightforward integration into a document.
The APL*PLUS System for the Macintosh#8482; is a full-featured APL interpreter that integrates the Macintosh user interface style into a standard APL*PLUS System environment. An overview of these Macintosh-specific features along with a comparison of the capacity and performance of the APL*PLUS Mac System to other APL systems suggests that APL applications that are highly interactive, require large workspaces, and need advanced graphics are best implemented on the Macintosh.
APL2 is one of the most exciting programming languages to evolve from IBM's original APL discovery. APL2 has been restricted to IBM 370 mainframe computers, due to the complexity of the interpreter required to implement all facets of the language. This ...
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.
APL and Fortran, although very different, share the challenge of remaining "competitive" in the light of an onslaught of "modern" computer languages. To meet this challenge, both have attempted to enhance their position by adding significant new features to their language. For example, APL2 is an extension of APL.Fortran has also attempted to meet the challenges of modern programming by developing a new Fortran standard called Fortran 90. This standard revises many areas of Fortran, but this paper will only concentrate on those that affect the computational power of Fortran. Many of the changes were motivated by the increased use of vector and array "supercomputers." Therefore, array features, the ability to act on entire arrays instead of individual elements, are an important part of this new standard. In doing this work, the Fortran community looked to APL as an example of a powerful array language.This paper will answer several questions regarding this new standard. First, from a computational or functional point of view, what are the major features of Fortran 90? Next, how do these features compare with APL2? And finally, what can APL2 learn from the Fortran 90 work?
Dyalog APL Version 5.2 introduces an elegant approach to Full-Screen Management. Using a new system variable the screen may be controlled in a way which is natural for APL. This paper describes the screen manager, with a variety of examples
Aberth's method for the iterative finding of polynomial zeros using simultaneous interacting guesses is seen to be the systematic use of Newton's method under Parallel Anticipatory Implicit Deflation (PAID), changing the single polynomial problem into that for a system of rational functions. It offers the prospect of parallel execution, discourages coincident convergences, and subjects all iterates to the same algorithm, without the uneven roundoff error accumulation due to deflation typical in serial iterative methods. Yet it converges slowly to multiple zeros, and consumes far more total computing power than serial methods. Factors hindering convergence include problem symmetry and clustering of iterates, alleviated by asymmetric initial guesses and an immediate updating strategy, as seen through the speedup in the experimental APL program PAIDAX.
This paper evaluates APL2 in the context of systems development, noting that a language is not an end in itself, but one of several tools used to create an information system. Despite its many good features APL2, when evaluated in that context, has some ...
The paper investigates, how S AC , a purely functional language based on C syntax, relates to A PL in terms of expressiveness and run-time behavior. To do so, three different excerpts of real world A PL programs are examined. It is shown that after defining the required A PL primitives in S AC , the example programs can be re-written in S AC with an almost one-to-one correspondence. Run-time comparisons between interpreting A PL programs and compiled S AC programs show that speedups due to compilation vary between 2 and 500 for three representative benchmark programs.
GPSS is a discrete simulation language, suitable for queuing systems.Its main advantage is that it is very easy to learn and easy to use, but its disadvantages are that it is very clumsy and also very restricted in its arithmetic (for example it is integer-valued ...
This paper proposes and discusses some enhancements to the current treatment of the scope of APL objects (i.e., functions, variables) and introduces a scheme of access classes for variables within APL functions.
a prototype APL to C compiler (ACORN: APL to C On Real Numbers) was produced while investigating improved tools for solving numerically intensive problems on supercomputers. ACORN currently produces code which runs slower than hand-coded Cray FORTRAN, but we have identified the major performance bottlenecks, and believe we know how to remove them. Although created in a short time on a limited budget, and intended only as a proof of the feasibility of compiling APL for numerically intensive environments, ACORN has shown that straightforward compiled APL will be able to compete with hand-optimized FORTRAN in many common supercomputer applications.
This paper presents an implementation of ActiveX Data Objects (ADO) in multithreading Dyalog-APL applications providing high performance access to any data source. The suggested approach is based upon an OLEClient object of Dyalog-APL that provides an OLE (Object Linking and Embedding) automation mechanism for working with ADO as an OLE Automation Server. This concept of such Dyalog-APL applications consists in a presentation of data-processing on 3 levels of hierarchy:{ {OPERATION)ε TASK}εJOB.A synchronisation of database operations in threads is supported by ADO events. Low level operations are accumulated in a library of functions that can also be used autonomously in a single thread for solution of private tasks. These functions are optimised to work in a Dyalog-APL environment. It is available to use in a root of a objects tree RECORDSET object. Data-processing can be carried out directly at a low level to optimise performance, other objects can be created when necessary for the solution of concrete tasks. Many of the RECORDSET operations can be notified before and after each other. OLE is very dependent on the Visual Basic programming language and the syntax of APL is more restricted than the syntax of Visual Basic. It is discussed accommodation problems from syntax point of view.
The paper considers the role of pseudo random number generators in the financial and actuarial numerical applications. Some generators are compared and some considerations are made about the distortion coming from their use. A general approach for the calculation of risk in financial and actuarial problems is presented.
This paper presents the use of base value (⊥) for financialand actuarial calculations involving present (discounted) value andfuture (accumulated) value, annuities certain (both immediate anddue), life annuities, and amortization. Base value can performthese calculations at either constant or varying interest.Simultaneous evaluation of various possible streams of paymentsunder each of several scenarios of varying interest rates can beperformed by a single ⊥ with matrix (or higher rank)arrays for both left and right arguments.
This paper describes the design and implementation of an APL based three dimensional graphics system. The system is composed of several functions which are grouped into individual modules such as modelling functions, viewing functions, transformation ...
This paper describes ADAGE, (A Dynamic APL GUI Equation solver), which allows the user to solve a single multivariate equation when values are supplied for all but one of the variables. The application presents a graphical user interface and uses many of the newer features of Dyalog APL. These include dynamic functions and operators, recursion with tail calls, object syntax, and namespace reference array expansion. All of these features, combined with some key mathematical concepts, including function composition, implicit functions and the Secant algorithm, work together to provide a simple solution to a complex problem. Several examples from the mortgage industry will be explored.
This paper describes ADAGE, (A Dynamic APL GUI Equation solver), which allows the user to solve a single multivariate equation when values are supplied for all but one of the variables. The application presents a graphical user interface and uses many of the newer features of Dyalog APL. These include dynamic functions and operators, recursion with tail calls, object syntax, and namespace reference array expansion. All of these features, combined with some key mathematical concepts, including function composition, implicit functions and the Secant algorithm, work together to provide a simple solution to a complex problem. Several examples from the mortgage industry will be explored.
Traditional economic theory sees human economic decisions as rational choices of action to achieve maximum utility. However, economic reality shows that people often behave in ways different from that ideal: actions are not always determined rationally; often they are influenced by other factors, such as chance and tradition. In order to describe the behaviour of economic agents in the real world, we take irrationality and adaptation into account: we present work in progress on a market simulation that shows the effects of partly irrational and adaptive consumer buying decisions on the course of action of entrepreneurs.
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 on the joint use of formalized method (numerical simulation) and adaptive method (simulation with a neural network) when the model structure is formed by incoming information.A combination of forecasts selected by experts allows one to make the most likely forecast from the "fan" of probable tracks.An APL implementation of this procedure has been used for the forecasting of municipal expenditures and has brought significant economic benefits.
The paper considers Adaptive Learning Networks (ALN) as a tool to solve the problems of modeling, prediction, diagnostics and pattern recognition in complex systems. This method is similar to the neural network technique. The main difference is the self-organization of network structure on the basis of generation and estimation of various nodes, connections and weights. A set of functions presented in the paper shows that ALNs are easily realized in APL2. User-defined operators are used as a very convenient tool for ALN programming. The paper discusses the application of implemented software to the problem of Burnout Heat Flux Prediction in nuclear reactors. It is shown that ALN technique allows the prediction of burnout heat flux with approximately three times better accuracy than other commonly used methods.
At a recent Workshop organized by the APL Group in Denmark, the three of us were given the task of finding ways to improve APLs image in the DP community. This paper is the result of that work. We hereby present a strategy for reducing the clashes between US (APLers) and THEM (those dim-witted DP experts). The conclusion is that the rest of the world does have a right to their own beliefs. What's more, we found that some of the things they say about us are not entirely mad - APLers are quite often more ignorant of the rest of the DP world than they are of us, and we have a responsibility to do something about this. Here, in ten easy steps, is the way to make friends with the DP department and win their respect (and if you are lucky, perhaps even their cooperation). This is an OPERATIONAL plan which should be used in planning the use of APL within an organization. Based on common statements made by those who criticize us, we have found ten areas in which work is required within an organization if APL is to prosper as a valuable tool. One member of the group - Svend Frandsen - has hopes of implementing our plan at ATP, and hopefully, by the time this paper is presented, he will be able to tell us whether it works!
Dominique Julio and Joël Mosland have been working for the last ten years in the research department of the Personnel Management of UAP (Union des Assurances de Paris). They use APL for several applications: prototyping, definition and testing of simulation models.This article defines an application whose major characteristic is the interfacing of several computer systems. These systems existed before in UAP and had to be rapidly interconnected, with limited human and financial resources. The choice fell very rapidly on APL, given its ease of development and maintenance.
Hyperbolic symmetry has been explored by mathematicians and artists as an outlet that can produce aesthetically appealing images with an underlying mathematical structure. In particular, the artist M. C. Escher has utilized the techniques of hyperbolic symmetry to generate his circle limit drawings. These images contain a central pattern, which is repeated outward while decreasing in size. To create these images, Escher utilized the circular Poincare model of the hyperbolic plane [5]. This model provides the basis for this paper's purpose: exploring families of hyperbolic attractors generated when combinations of maps with hyperbolic symmetry and affine structure are mixed.
This paper describes the role of APL as an efficient and crucial tool in research and development of sophisticated electronic systems. It will show how APL was successfully used in the development of a cochlear implant device. Cochlear implants are bio-medical electronic systems allowing completely deaf persons to recover partial hearing capabilities. This kind of system has been around for some time. Unfortunately, performance and flexibility have improved at a slow pace. Also, a more in-depth scientific understanding and testing were required.We will begin with an overview of the system itself, followed by the important role of APL as a time-saver and flexible tool, present some details on the APL programs and conclude with future directions for this technology.
This paper describes the design and implementation of an APL based three dimensional graphics system. The system is composed of several functions which are grouped into individual modules such as modelling functions, viewing functions, transformation ...
The “Dictionary of J” is not written for the faint of heart. Its numerous self-references make it very difficult to tackle. The author thinks that section II.B, “Verbs”, is one of the keys for getting a confident grip of the language. This paper basically just repeats this section using a tutorial style, some historical background, and several pictures. Hopefully, it will enable people with analytical minds to find their own way through the Dictionary. It closes with a discussion of possible language changes in the context of II.B
This paper describes a program which calculates the geometrical characteristic values of cross-sections of beams with complex shapes (bars or thin-walled profiles with any number of holes in the profiles).After a short introduction describing the calculations ...
At the APL90 Conference I presented a paper ( in which I suggested that APL's future was dependent on its becoming an integral part of a wider computing environment, and in it I made a number of proposals for accomplishing this. Comparing my analysis and proposals to how both APL and its environment have actually evolved in the intervening dozen years is both interesting and instructive, inspiring a mixture of celebration, trepidation, and sober reflection.
Top-cited authors
Manuel Alfonseca
  • Universidad Autónoma de Madrid
Robert Bernecky
  • Snake Island Research Inc, Toronto, Canada
Karen Iverson
  • Tyson Occupational Health
Gottfried Rudorfer
Alfonso Ortega De la Puente
  • Universidad Autónoma de Madrid