APL97 (Toronto) CD ROM (with Abstracts)
Vector 14:3, page 31
Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 31
The following list includes any material associated with workshops and tutorials, and a complete set of abstracts of contributed papers, marked "not on CD" if no extra material is available.
W4: Creating Images in J by Cliff Reiter, Lafayette College: This was a hands-on workshop designed to give participants experience with creating visual images. Exercises for beginners include creation of fractals, plasma clouds and basic image processing. Intermediate and advanced participants are invited to explore their own interests or use available exercises to create 3-dimensional images or symmetric chaotic attractors. The exercises from the session are included as (X: = your CD):
T8: An Introduction to J for APLer’s by Richard Levine: The subject is the J language and system. The objective is to assist the participants to understand and assess the basic concepts and details. The observed strong commonality of J with many dialects of APL will be exploited to "jump-start" an understanding of J, especially for those who have already made attempts in this direction. We will make heavy use of existing reference materials. There will be ample opportunity for discussion within a carefully planned agenda. Participants unfamiliar with APL will also benefit, and J’s unique "non-APL" aspects will not be ignored.
T10: APL+WIN Training Program, OO Programming, etc. by Eric Lescasse, Lescasse Consulting: Published in Vector 14.1 and 14.3. See the workspaces:
T12: Electronic Commerce, Electronic Data Interchange, and the Internet by Ed Shaw, APL Group: Electronic Commerce encompasses email, FAX, and EDI. Business transactions are conducted over a communications link, whether it be proprietary, a common carrier, a value added network, or the Internet. The tutorial will describe the specific characteristics of each, with an emphasis on EDI, and the role of an EDI translator, such as The APL Group’s software product, Qualedi for Windows®. It will also bring you up to date on the involvement of the U. S. Government in EDI. To gain maximum benefit from these opportunities, companies must integrate Electronic Commerce with their transaction oriented computer applications and possibly re-engineer their business operations. This implies an important role for the computer and business consultant.
T13: An APL Toolkit by Richard Levine: The primary subject is the new Release 4 of the Toronto Toolkit, a collection of APL freeware APL utilities now approaching 15 years. The expected audience is those who use APL in a programming mode, who use or wish to use a "toolkit" approach. Besides a demonstration of new functions (e.g. function development tools) and features, documentation, and architecture of the Toolkit, the tutorial will offer a unique opportunity to present and discuss the software philosophy guiding the Toronto Toolkit. Connections with APL (various dialects) and J language and system features, and other toolkits will also be covered. This tutorial has general appeal to those interested in collections of APL "utility" functions.
T15: Mathematical Roots of J by Roger Hui & Ken Iverson, Iverson Software Inc.: The massive Handbook of Mathematical Functions [1] has now served mathematicians for over thirty years. For several years, work on a companion volume of executable functions has spurred many innovations in the J system. This three-hour workshop provides a review of these developments, presented in a live, interactive manner. Previous knowledge of both the Handbook and J would be helpful, but not essential. Items to be treated include:
Extended Precision Integers. A calculus of Inverses, Derivatives, Integrals, and Duals, for a wide range of standard monadic functions, including families (such as the power functions
^&n) derived from dyadic functions. Taylor and Weighted Taylor coefficients for a similar range of functions, including rational functions (quotients of polynomials) Smoothing (interpolation) and Quadrature operators for efficient calculation of integrals of arbitrary functions. An operator used (in the form^!.s) to provide generalizations of the "rising factorial functions" used in the definition of Hypergeometric functions (provided by the operatorH.). Elaborate graphic facilities for the presentation of mathematical functions.
T16: How to Write an APL Utility Function by Stephen M Mansoor, the Carlisle Group: In today’s business climate, reusable 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. To avoid this, the author of a utility function must make an extra effort to ensure that his function is designed properly.
T17: GUI Programming in APL+WIN by David Siegel, LEX2000: This talk is intended for APLers new to windows/GUI programming, but familiar with APL. It would cover the event-driven model used by windows, and how to create simple windows applications in APL+WIN, using hands-on examples with several of the APL+WIN GUI controls in place. Assorted APL+Win utilities on:
(not on CD) P1: SHARP APL Mainframe and the TCP/IP Revolution by Dave Mitchell, Xerox: Sharp APL at Xerox has always been network driven. At Xerox, TCP/IP has brought APL from IPSANET, RJE, TYMNET and SNA into the world of Internet and the Web. Terminal access, file transfer, mail exchange, network printing, Web serving and direct application to application support are some of the successful accesses being done daily. Methodologies, experiences, pitfalls and plans are presented.
(not on CD) P2: Creating Embedded Applications with the NIAL Tools by Mike Jenkins, NIAL Systems: The Nial Tools consist of several compatible versions of the Q’Nial interpreter organized to support the rapid development and deployment of data-intensive applications. The tools are:
Q’Nial, the interactive interpreter for Nial used for program development;
the Nial Data Engine, a package for activating Nial applications from other software;
RunNial, a runtime version of the interpreter invoked from the command line;
CGI-Nial, a version of the interpreter to support Web applications.
P3: Data Transfer between Java Applets and Legacy APL Applications by Bruce Amos, Gavin Disney and Duane Sorrey, Reuters: The rise of Internet technologies (particularly Java) provides many benefits for the development and deployment of user interfaces. In many cases, however, the back end system is behind the times: Internet hostile, no object orientation, etc. How can data be transferred between the new generation front end and the old generation back end without compromising the strengths or integrity of either? This paper discusses the use of customised Java data serialisation to achieve this goal against a large IBM MVS Sharp APL system.
P4: APL IDE: A Windows Interface to Mainframe APL Systems by Dennis Paproski, Reuters: When I joined I.P. Sharp in 1988 there were two interfaces to the Sharp APL mainframe:
1. through proprietary terminal emulation software written for DOS called PC108 which emulated an HDS108 terminal as well as providing some extra functionality and
2. through a 3270 terminal or PC 3270 emulation. In 1997 my choices are essentially the same while other PC technology has improved immensely. The goal of the APL IDE project is to provide the Sharp APL programmer at Reuters with a new interface to the mainframe that will improve productivity. This will be achieved through:
1. A Microsoft Windows interface. Multiple function editing windows, drag and drop functionality, search and replace, an improved editor etc. These features are the expected norm for Windows users and are a marked improvement over the current software. The APL IDE should be comparable in ease of use to IDEs available for other programming languages such as C, Pascal or even Cobol.
2. The IDE will be closely integrated with features available in LOGOS, a software management environment within Sharp APL. This includes an improved interface to a utility library available in LOGOS which will promote the reusability of common code.
3. Improved on-line help for the programmer. Sharp APL manuals will be available through the Windows help facility.
4. Improved debugging tools, a visual step debugger and watch windows.
5. Access to powerful APL tools on the mainframe through a GUI, ie. WSDOC, or quad FM. The APL IDE will be mostly written in Dyalog APL for Windows with some functions written in Microsoft Visual C++ available through a DLL. The development of the IDE will also provide additional benefits beyond improving programmer productivity: 1) We can add additional functionality through further upgrades i.e. sockets connections. 2) We can expand the usability to other platforms i.e. Windows NT or Unix.
P5: Computer Construction of Weaving Designs by Keith Smillie, Univ. of Alberta: J algorithms are developed for deriving the weave of a piece of cloth from the instructions for setting up a loom, for the converse operation of deriving the setup instructions from the weave, and for introducing colour into the weave. Published in Vector 14.3.
P6: About Recurrent Calculations in APL by Andrei Buzin, RusAPL: It is known that APL gives the possibility to think globally, in terms of arrays. It has powerful operators which process arrays as a whole. Unfortunately, not all problems of array processing can be solved elegantly by APL. APL is oriented to regular array processing, which means that all elements are processed similarly. However from time to time the researcher who uses arrays requires singular or recurrent array processing, in which the algorithm of single element processing depends either on this element itself or on the other elements of array. As examples of singular processing we can mention calculating the logarithm of a numerical vector or the derivation of a piecewise-smooth function in points among which there are the points of non-differentiability. It is obvious that the points where the function or operator is not defined must be excluded from the processing. APL does not do this, nor inform us which element can’t be processed. To obtain such a result we must use looping, but loops in any interpreter work very slowly. It would be fine if this iteration was programmed as part of the language, as in the case of reduction, scan or each operator. In this article we shall discuss the other type of irregular array processing, namely, the recurrent calculating of the elements of array. See:
P7: TimeSquare Tables — A New Data Type by Doug Forkes, Soliton Associates: While developing the TimeSquare project, we found it quite useful to define a special datatype, and a set of functions to act upon it. The new datatype is somewhat analogous to an SQL table, so we call it a table. A table can be thought of as essentially two-dimensional, with a finite number of ordered rows, and an infinite number of identified but unordered columns. The identifier of a column of a table may be any APL object. Each element of a table may be any APL object, or may be null. This paper will describe a set of APL functions to manipulate such tables, and provide some examples.
(not on CD) P8: Global Limits Control System at Deutsche Bank by Michael Kornacker, Deutsche Bank AG: GLCS (global limits control system) is a part of risk management in the business with financial institutions counterparty and country risk monitoring in the trading products mm, fra, fx, spot, fx forward and commercial paper; history, present, future.
P9: Interactive Design of Structures — A Program for Everyone by J. Riebenbauer & J. Hoffman: We will present Intraplan V2 — a graphical DyalogAPL/W application for the design and analysis of planar member frame structures. We will demonstrate how to input and optimize a load bearing structure using the complete visual and intuitive GUI of Intraplan. We will also talk about the program development history, e.g. about our experiences we made during the migration from APL*PLUS II to DyalogAPL/W, with its object oriented Windows Interface and namespaces. Published in Vector 14.2.
P10: Alvin Surkan Univ. of Nebraska-Lincoln: A Concise APL Function View of a Constructive Algorithm for Neural Networks that Generalize: APL functions are provided as descriptions of constructive algorithms for optimizing the synthesis of neural networks while improving their generalization capabilities. Programs of these algorithms construct networks of binary weights for classifying or partitioning sets of arbitrarily-high dimensional binary patterns in the closer of two classes. The study of constructive algorithms for identifying such networks is of direct interest to designers who build array processing hardware classifiers from fast two-level digital circuits. Provided is an APL exposition of a constructive algorithm for synthesizing minimal neural networks. One of our objectives is to introduce creative APL users to this emerging application area and the language’s potential for describing array-based software and hardware. This constructive method incorporates a minimum overlap pattern separation and a target switching algorithm. Prototypes of constructive algorithms implemented with typical, scalar-based procedural languages typically require hundreds of statements. Array based formulations with functional style programming languages like APL and J require a few short functions. See …
(not on CD) P11: J vs. Mathematica by Murray Eisenberg, Univ. of Massachusetts-Amherst: APL and J have had limited success in penetrating mathematics education, especially at the college level. By contrast, in recent years Mathematica has received increasingly wide acceptance. Why? How do J (as a representative of the APL family of dialects) and Mathematica stack up against one another — as tools for getting answers; as programming languages; and as tools of thought? These are among the questions to be addressed by the presenter, who has taught linear algebra for many years using APL or J and, most recently, using Mathematica.
(not on CD) P12: Nested Array Internals and Efficiency by Roy Sykes, Sykes Systems: The advent of nested arrays has given APL users an even richer repertoire of ways to store and manipulate data, especially for small or ad hoc problems. But heavy usage of large datasets still demands efficient processing. By examining the internal architecture and implementation of APL, we can evaluate different storage strategies to predict their efficiency. This talk will uncover these hidden aspects of APL and use several examples to illuminate our findings.
P13: APL and Nested Arrays — A Dream for Statistical Computation! by Alan Sykes & T. Stroud, Univ. of Wales, Queen’s Univ.: Many papers have been produced in the last 10 or more years extolling the virtues of APL for statistical computing. Such papers have stressed APL’s array-handling operations, the use of user-defined operators, and the often transparent flow from mathematical notation to APL’s equivalent computational notation. The use of nested arrays figures relatively little in this. (Of course, the current Windows-oriented computing medium means that a function’s argument may well be, often is, a long nested array!) This paper demonstrates why APL with nested numeric arrays is just what the statistician needs in order to deal with missing data in a sample survey analysis. One technique of dealing with missing values is that of multiple imputation in which each missing value is replaced by a set of between five and ten ‘typical values’. APL with nested arrays provides just the right medium for the efficient storage of the resultant database. Moreover, because array operations on nested arrays employ scalar extension, the paper shows that typical statistical functions, such as the calculation of means, standard deviations, regression estimates, can be programmed, often with little or no change, so that they will operate on the nested database to provide multiple answers (each answer corresponding to one of the chosen typical values representing the missing values). The multiple answers can then be used to give answers required that truly reflect the variability induced by the missing data. The statistical knowledge required to appreciate the content of the paper is minimal — the beauty of APL in the service of Statistics is considerable! Published in Vector 14.2.
(not on CD) P15: Evolution of CoSy by Bob Armstrong, Coherent Systems: CoSy is the NoteComputing environment I have evolved since meeting APL in the mid ’70s, for general support in the business of life. Currently CoSy is constructed in old STSC flat PC-APL in 1984 as an open-source hypertext browser of its own objects — although that vocabulary was not yet in use. The target now is to rip the organs of Window95 (OLEs) open into a coherent linguistic structure down to the hardware — creating an environment providing the user/programmer complete control over their notebook computer. The practical next step is to integrate CoSy with a competitive APL language community and all the algorithms its members are interested in sharing.
P16: War on the Workspace — a Databased Commercial Application by Ed Shaw, APL Group: How do you properly support thousands of dispersed users of a PC application without losing control and yet provide timely and apparently customized features? How do you continue to maintain and enhance a commercial application over a period of many years, including a conversion from DOS to Windows and the inevitable changes in personnel without falling off a cliff? There are probably as many answers as there are developers to this question. The APL Group has chosen to ignore the workspace and to store all control data functions in a highly structured manner in its proprietary database written in APL. It has also adopted a number of procedures and controls which have allowed it to continue to succeed over 14 years with a continually evolving product. The techniques adopted will be described with the hope that some of them may be of use to others and also that they may stimulate a discussion of alternatives for the mutual benefit of all who attend.
P17: J Phrases for Statistics at a Glance by Giitiro Suzuki, Institute of Statistical Mathematics: In my talk, many functions for statistical data analysis are presented. These functions are mainly written by tacit definitions. These are then convenient as a J primer. Main contents are as follows:
mean, median, mid-range, moving average, range
mean deviation, standard deviation, coefficient of variation
mean difference, quantile deviation
dispersion measure for categorical data
histogram, frequency polygon, stem-and-leaf diagram
correlation ratio, Pareto curve
scatter diagram, correlation coefficient
regression analysis, principal component
analysis of variance, discriminant analysis, etc.
P18: J Installed String Manipulations Applied to English-Esperanto Machine Translation, by Toshio Nishikawa, Chiba Institute of Technology: J has been widely used for mathematical computations. However, it’s less often used to do string manipulations such as machine translation. The author developed a small machine translation system using APL, and tested its adaptability through English-Esperanto and Japanese-Chinese translations. Given the growing popularity of J, we made a plan to convert the system to J. First, we thought it could be easily converted in line-by-line code, but we soon realized this to be impossible. Therefore, we rebuilt it as almost a new version, starting from making several function tools for manipulating character strings, although we aim for machine translation. We adopt English-Esperanto as a pair of translation, because of simplicity and regularity. Thanks to the power of J, especially ‘box’ and ‘each’ codings, we can expect a compact translation system.
D1: Chaos with Symmetry — a visual exhibit by Nathan Carter, Richard Eagles, Stephen Grimes, Andrew Hahn, and Cliff Reiter, Lafayette College: In recent years mathematicians have found ways to construct images of attractors resulting from function iteration, that have both symmetry and chaos. We extend, explore and refine those methods to allow us to look at attractors with rotational symmetries, shift symmetries and tiling symmetries. The images in this visual exhibit were constructed in J and selected for their provoking appearance. See …