SIGAPL

APL97 Logo Abstracts from APL97
International Conference on APL
Share Knowledge/Share Success
August 17-20, 1997 in Toronto Canada


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 sucessful accesses being done daily. Methodologies, experiences, pitfalls and plans will be presented.


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; and CGI-Nial a version of the interpreter to support Web applications. The talk will describe how the Nial Tools have been used by various clients to create applications that interface with other software.


Data Transfer between Java Applets and Legacy APL Applications

by Bruce Amos, Gavin Disney, 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 will discuss the use of customized Java data serialization to achieve this goal against a large IBM MVS Sharp APL system.


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 acheived through:

  1. A Microsoft Windows interface. Multiple function editing windows, drag and drop functinality, 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 Window 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 ie. sockets connections.

2) We can expand the usability to other platforms ie. Windows NT or Unix.


Computer Construction of Weaving Designs

by Keith Smillie (Univ. of Alberta)

J algoritnms 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.


About Recurrent Calculations in APL

by Andrei Buzin (RusAPL)

It is known, that APL gives the possibility to think global, in terms of arrays. It has the powerful incorporated means of processing arrays as a whole. Unfortunately, not all problems of array processing can be solved elegantly by APL. The APL is oriented on regular array processing, which means that all elements are processed similary. However from time to time the researcher who uses arrays often, 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 of logarithm of numerical vector or the derivation of piecewise-smooth function in points among which there are the points of nondifferentiability. It is quite obvious, that the points, where the function or operator is not defined, must be excluded from the processing. APL does not make this, nor informs which element can't be processed:

To obtain such a result we must use cycle, but cycle in any interpreter works very slowly. It would be fine if this cycle was programmed as the immanent 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.


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.


Global Limits Control System at Deutsche Bank

by Michael Kornacker (Deutsche Bank AG)

GLCS global limits control system is a part of risk managment 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.


Interactive Design of Structures - A Program for Everyone

by J. Riebenbauer & J. Hoffmann

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 it's object oriented Windows interface and namespaces.


A Concise APL Function View of a Constructive Algorithm for Neural Networks that Generalize

by Alvin Surkan (Univ. of Nebraska-Lincoln)

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 typci ally require hundreds of statements. Array based formulations with functional style programming languages like APL and J require a few short functions.


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.


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.


APL and Nested Arrays - A Dream for Statistical Computation!

by Alan Sykes (Univ. of Wales) & T. Stroud (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!


Object Oriented Spatial Positioning Systems

by Erik Papp & István Kádár (University of Budapest)

István Kádár
Erik Papp
Technical University of Budapest
P.O.Box 91, H 1521 Budapest, Hungary

The Object-Oriented Location Systems consider every geographic object, layer, overlay et cetera such kind of homogeneous raster set where orbitrary linear ordering can be defined over its elements. Hereby possible to create a subrange type data structure from "serial numbers" of the raster elements. Those latter will call "the rank of point" (0* rank The connections between both the independent and the nested objects have kept by so-called "virtual coordinates" produced by "unranking" procedure. The virtual attribute call our attention to that this data are not exists in form of geodetic data: because of the rank have been stored in database instead of the mutually unambiguous related coordinates. The virtual coordinates are born and die too in computer processor (arithmetic unit). They live only up to that time until they fulfill their function - which still irreplaceble - in execution of geometric and geodetic operations.

We present in our paper the solution of that task which arise in case of the dynamic restructuring of the same geographic event space. Naturally under such circumstances the rank of a point will be changing but remaines invariable of the location of one inside of the virtual "Euclidean background geometry". This identity of the location the virtual coordinates can be ensure. We chose the so-called Burton mapsheet pair for illustration what we has got to say (The Computer Journal, London, Vol. 30, No. 4, 1987 pp. 355.) which demonstrate the partition of identical mapsheet according to two alternative. The J program language based on APL array arithmetics proved to be an efficient tool for the transformation the rank of identical points between of two different kinds of structures. Both the "ranking" and the "unranking" procedure require only half line size program. independently from complexity of real structure or the size of geographic object. The data structure itself the suitable combination of the three following arrays:

  • the "logic array" a description of structure of raster set(s)
  • the "array of ranks" one or more local index arrays, similar to the parcel numbers
  • the "array of virtual coordinates" contains n-ary coordinates in "boxed" forms

By the way the solution of task - thanks to advantageous attribute of array arithmetic - dimensionless, namely not only in plane and in space but it can be use - for example - in spatial temporal four dimension GIS systems also without any modification.


Evolution of CoSy

by Bob Armstrong (Coherent Systems)

CoSy is the NoteComputing environment I have evolved with since meeting APL in the mid `70s for general support in the business of life. Current CoSy was constructed in old STSC flat PC-APL in 1984 as an open-source hypertext browser of its own objects -- altho that vocabuary 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.


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.


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. Then, these are 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, steam-and-leaf diagram
  • correlation ratio, Pareto curve
  • scatter diagram, correlation coefficient
  • regression analysis, principal component
  • analysis of variance, discriminant analysis, etc.


J Installed String Manipulations Applied to English-Esperanto Machine Translation

by Toshio Nishikawa (Institute of Statistical Mathematics)

Toshio Nishikawa
nisikawa@ism.ac.jp
Institute of Mathematical Statistics
4-6-7, Minami-Azabu, Minato-ku, Tokyo, 106 Japan

J has been widely used to mathematical computations, however, less often used to 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.

In growing popularity of J, we made a plan to convert the system using J. First, we thought it could be easily converted in code-by-code, however, realized to be impossible in such a simple way. Therefore, we must rebuild it as almost new version, and for the time being, start from making several function tools for manipulating character strings, although we aim to machine translation. We adopt English-Esperanto as a pair of translation, because of simplicity and regularity. Thanks to powerfulness of J, especially 'box' and 'each' codings, we can expect compact translation system.


SIGAPL

Last Update: January 30, 2007
For questions, problems, or comments regarding this website, please send email to:infodir_sigapl@acm.org