bluuebunny/crossref_metadata_2025_split huggingface dataset:
The syntax of APL, an old approach revisited
Authors: Girardot Jean Jacques , Rollin Florence 
Published: January 2007

Most efforts have been made in the past APL conferences to propose new approaches to the analysis of APL, and introduce new features in the language. However, most of these proposals take very little in account the amount of work that has been made around syntax analysis in the 'main stream' of computer science.
The proposed approach, as described in this paper, can therefore be considered as an old work. We first describe the fundamental syntactic devices of APL. Those devices are then arranged as a standard BNF. We can exhibit some properties of the language described, and consequently select from the literature an appropriate technique to perform the syntax analysis of APL expressions. The proposed method uses a push-down automaton. Although the language is shown to be not LR(k), an adaptation of this technique works well using backtracking.
The whole process has been modelled in APL. A first application transforms a grammar expressed as a BNF in a set of tables. A second application uses these tables to perform the syntax analysis of APL statements. These last programs have been rewritten in C, integrated in an APL system, and used to test different dialects of APL, such as ISO-APL or APL2. Results show the influence of the cost of syntax analysis in the processing of APL expressions.
Use of virus functions to provide a virtual APL interpreter under user control
Authors: Gunn J. B. 
Published: January 2007

By inserting a simple statement at the beginning of an APL function, it is possible to cause the execution of a reconstructed version of the function, rather than of its original statements. This reconstruction can simulate the effect of an arbitrary change in the APL language; thus, the APL programmer can have available a private, “virtual” version of the interpreter
We show some general- and special - purpose functions which can be used for this purpose, and give elementary examples of their application.
Application development and control system (ADACS)
Authors: Körnemark Rolf 
Published: January 2007

User friendly applications are very often menu-driven. ADACS (in this paper used as an abbreviation for
A
pplication
D
evelopment
a
nd
C
ontrol
S
ystem) is such a menu system for APL applications. This paper describes how

• menus are made
• applications are developed/maintained
• applications are executed

Using ADACS, application prototypes as well as regular APL-based production systems have been developed. As it is used to
develop
applications - where the developer is an ADACS end-user - as well as to
execute
applications generated by ADACS, it is necessary to separate these modes of operation and the kind of people involved. In this text the words
programmer
and
end-user
will be used for that separation.
Exact nonparametrics in APL
Authors: Streitberg Bernd , Röhmel Joachim 
Published: January 2007

The authors present a new algorithm for the exact distribution of many nonparametric tests. The algorithm is based on a recursion formula that relates the distribution of where K1,...,Knare iid Bernoulli [1/2] and a1,...,anare fixed p-vectors, to the distribution of Tn-1. The core idea is to realize this recursion by shifts of the p - dimensional distribution of Tn-1in the computer main storage, which can be implemented efficiently in APL. We believe, that the method has achieved a breakthrough in the practical application of Fisher-Pitman permutation tests, but it can also be used routinely in the computation of many other tests by applying an initial transformation to the original data. A noteworthy example is the Wilcoxon test with arbitrary ties in the data, whose exact distribution can easily be computed for Nample 100.In order to allow the direct use of these results, a complete list of the necessary APL programmes is included in the text.
APL learning bugs
Authors: Eisenberg Murray , Peelle Howard A. 
Published: January 2007

This paper discusses common mistakes novices make when learning to program in APL. We present several exemplary APL “learning bugs”, describe the context in which they occur, indicate why we believe they are interesting, and speculate about underlying thinking processes. We claim that such learning bugs are worth examining: further study may yield insight into barriers to wider acceptance of APL, better understanding may lead to more effective APL teaching, and deeper analysis may hold implications for APL designers.
bug...1: obs: bogey, bugbear (bugaboo): an imaginary object of fear; a source of concern
2: an insect or other creeping or crawling invertebrate...
3: an unexpected defect, fault, flaw, or imperfection
4: a disease-producing germ; also: a disease caused by it
5: a fad
6: enthusiast, hobbyist (obs: a crazy person)
7: a prominent person
8: a concealed listening device
9: a handicap
(adapted from Webster's New Collegiate Dictionary, G. & C. Merriam Co., Springfield, MA, 1977)
A powerful but simple editor based on APL
Authors: Brenner Norman 
Published: January 2007

An experimental full screen editor has been written in APL for IBM 3270 display terminals, based on the following principles:
• a small command repertoire, based on APL syntax
• an undo facility for correcting mistakes
• internal dependence upon a small number of editing primitives
As written, the editor contains two major commands, thirteen minor commands, and permits all of APL for a macro language. The internal primitives are Erase, Insert Gap, Overlay and Find.
The hunting of the Snark
Authors: Chastney Philip R 
Published: January 2007

Consideration of the formal semantics of APL particularised to consideration of the unusual properties of the null expression. It was something of a surprise to discover that these properties had already been fully documented 100 years ago by Lewis Carroll (Cal). Since that opus is not normally a part of the lore of APL, this paper attempts to re-interpret the original findings in 20th century terminology.
APL has a number of objects which are, in some sense, null or empty - two empty vectors, multitudinous other empty arrays, undefined objects and local variables with names but no values. There is at least one other null entity. It has no name, and it has no value. Worse yet, it is denoted by the empty string, and is therefore not easily seen.
Computer arithmetic and programming languages
Authors: Kulisch Ulrich W. 
Published: January 2007

For historical reasons, the early programming languages lacked a precise definition of the arithmetic operations and the roundings which are to be employed. The paper summarizes an extensive research activity on computer arithmetic that went on during the last fifteen years as well as the experience gained through various implementations.
We begin with a complete listing of the spaces that occur in numerical computations. This leads to a new and general definition of computer arithmetic. The arithmetic operations are defined by a general mapping property which is called a semimorphism. We discuss the properties of semimorphisms, show briefly how they can be obtained and mention the most important features of their implementation on computers. The properties of a semimorphism should be used for an axiomatic definition of the arithmetic operations and the roundings within each programming language.
Then we show that the new, semimorphic operations can not be properly addressed by existing programming languages. Correcting this limitation led to extensions of PASCAL [4] and FORTRAN [3]. APL is much better suited for adoptation of the new arithmetic operations.
A demonstration of a computer that has been systematically equipped with the new arithmetic will follow the talk. The new arithmetic turns out to be a key property for an automatic error control in numerical analysis. By means of a large number of examples we show that guaranteed bounds for the solution with maximum accuracy can be obtained. The computer even proves the existence and uniqueness of the solution within the calculated bounds. If there is no unique solution (e.g. in case of a singular matrix) the computer recognizes it.
A financial modeling language using Nested Arrays
Authors: Noss Robert P. 
Published: January 2007

The imminent implementation of nested arrays concepts in APL offers a wide variety of potential applications for end users of APL-based financial systems. Historically, limitations of traditional APL tend to inhibit the non-APL programmer in using application packages based in APL, primarily due to syntax conventions which are unfamiliar to financial users who have experience in FORTRAN, BASIC, or higher-level packages based in those languages.
A key element in gaining wider acceptance of APL for financial modeling is a simplification of the APL-based systems to minimize the effects of the idiosyncrasies of APL syntax. STSC's Nested Arrays System (NARS) offers several valuable features toward this end. This paper gives an overview of the APL Nested Arrays Modeling System (ANAMS), which uses NARS features to create an English-like modeling language incorporating features previously infeasible using traditional APL methods.
Automated testing in APL—an application of exception handling
Authors: Prins Jan F. 
Published: January 2007

Several APL systems have recently been enhanced to include exception handling facilities. The construction of an automated tester is presented as a case study of one such definition: the latent expression exception handling system [1] available on STSC's APL*PLUS@@@@ System.
The automated tester was developed as a tool to manage the systematic verification of APL system features through programmed tests. A test is an APL program containing assertions that prescribe the outcome of associated statements. The tester verifies that the asserted outcomes are in fact realized during execution.
This paper describes the central role of exception handling in the implementation of the automated tester. When tests are executed as APL programs, the exceptions generated by the assertion construct can be used to control interpretation of the assertion. Other errors encountered during test execution must be intercepted and recorded, so that it is possible to assert that a statement results in an error. Finally, since the tester should execute large sets of tests unattended, it should not be interrupted by improper tests or unexpected results.
APL
Authors: vonBerg William G. 
Published: January 2007

SYBRON Corporation is a diversified manufacturing company operating in twenty-one countries around the world. The complexity and geographical distribution of SYBRON operations have increased as the company has grown.
In the last eight years, innovative APL systems combined with an extensive communications network have provided corporate and division executives with powerful new tools for management decision making.
Timely information is an invaluable resource. At SYBRON, it is available in similar form from common databases at appropriate levels of management regardless of geographical constraints.
The power to acquire, analyze and distribute information, however, is not an end in itself. It has positive impact on the corporate 'bottom line' only if it is continuously responsive to organizational goals and business objectives. SYBRON's organizational goal is to provide a favorable return on investment to our shareholders. APL systems are a valuable tool in achieving that objective.
An APL pattern-directed module for bidimensional data analysis
Authors: Bianchi Silvana , Mussio Piero , Ventura Anna Della , Rampini Anna , Dell'Oca Maurizio 
Published: January 2007

We suggest that APL may effectively be used for the implementation of pattern directed production systems (PDPS) for the analysis of bidimensional data. These systems look for interesting or important situations occurring as patterns in their input or memory data. These patterns cause the execution of suitable functions. Moreover APL makes it possible to carry out in a natural manner the synthetic and expressive definition of the patterns and then allows to verify the efficacy and power of such definition. We face these problems through MIPS (Module Interpreter for Production Systems).
In the work described, simple idioms and skeletons are used to set up the definitions and the instruments.
The system is described through two examples of application to the analysis of digital images from different experiments.
Hidden plane elimination and surface shading of polygons representing buildings using APL
Authors: Cornell David L. , Julian Warren G. 
Published: January 2007

The development of a colour perspective system for the representation of buildings creates different problems from those systems used to represent machine parts, etc. Realism is an important criterion because many users are naive with regard to computers and because they are used to sophisticated representations of buildings (e.g. photographs, rendered perspectives and physical models). The clients of architects are also interested in the realistic representation of the form of their buildings as are the planning authorities who must approve new developments.
As part of a system to produce coloured views of buildings under sunlight and skylight conditions, this paper discusses the problems of colour shading on a Tektronix 4027 type VDT and the process used for hidden surface elimination, both using APL.
In detail the paper explores the unique advantages of APL in implementing a modified Newell, Newell and Sancha algorithm for hidden surface elimination. In addition, it discusses the limitations of colour representation on the 4027 and proposes a technique for producing shading of polygons based on single hues and pattern generations, in order to produce realistic modelling of objects which have a single surface colour.
A pictorial format function for patterning decorated numeric displays
Authors: Falkoff Adin D. 
Published: January 2007

An extension to the APL dyadic format function is proposed, using a character vector left argument. This argument is a literal pattern having the exact length of the last dimension of the resultant array. No special markers are required to separate adjacent numeric fields, arbitrary decorations may appear within or outside of fields, negative or positive numbers can be distinguished by symbols of choice, and there is provision for accommodating the number representation practices of different countries. The extension completely covers the present functional capability of dyadic format with one minor exception (and possible improvement) in a detail of exponential presentation.
In the proposed extension, format information is carried in three ways: in the structure of the pattern, in the choice of digits to denote number fields, and in a system variable. Common requirements, such as the use of commas, floating negative signs on either or both sides of a number, and optional suppression of zero values, are achieved very simply.
This paper will describe the evolution of this proposal, which was first discussed at APL/73, give a rigorous formulation of the rules, and show examples of its use.
The use of APL as an executable formal language in economics demonstrated by an example
Authors: Janko Wolfgang H. 
Published: January 2007

Quantitative models in economics have gained a high degree of both mathematical and notational complexity which often hides the underlying fruitful and essential ideas. The use of complex notations delays the rapid spread of new ideas.
Using an example, we show that the use of APL in the presentation of the ideas of the model and in the proof of the related theorems leads to directly executable steps in the formal proofs, and hence to a better understanding of the ideas behind them. This not only results in a more thorough understanding of the model, but also in an essentially correct algorithm. We thus avoid the need for a separate formulation of the formal model in an algorithmic language.
Beyond laminate
Authors: Lucas Jim 
Published: January 2007

Lamination is a composition of rank expansion, or creation of new axes, catenation, and an axis operator. These components of lamination are separately defined, then the rank expansion and axis specification are recombined into a single operator, which can be applied in a consistent manner to any APL function for which an axis of application may be specified.
Two different conventions for specifying the new axes are developed, each self consistent. A compatible variation of the syntax is suggested for specifying rank expansion without action of any function along the new axis or axes. The second of the conventions is shown to be compatible with and complementary to axis specification without rank expansion, allowing a common operator symbol and syntax for both.
Compiling into APL
Authors: Mayforth George R. 
Published: January 2007

In some programming situations APL code can become as obtuse as that of other languages. One possible way to deal with such instances is to create a high-order programming language (HOPL) which provides an easy-to-code, easy-to-maintain structure and which may be compiled straight-forwardly into APL functions for execution.
Since the HOPL is designed for relatively narrow fields of use, it can be tailored directly to the problem which it solves. Two of the areas where the HOPL concept has proven useful are implementation of a simple, interactive graphics system and selection of data records from a database. We draw examples from these areas to discuss the concept and use of HOPL's.
Namespaces semipermeable membranes for APL applications
Authors: Murray Ronald C. 
Published: January 2007

Namespaces are proposed as an extension to APL which can provide for large APL applications the same sort of structure and communications control provided in living structures by semipermeable membranes.
Living systems are partitioned by a variety of semipermeable membranes. Those membranes provide protection and isolation for subenvironments of the entity. They also control the flow of information and material between the subenvironments.
Large applications designed for maintainability and extensibility are similar to living systems. They are hierarchically subdivided into simple subunits which are defined in terms of other subunits and which communicate with them in controlled ways.
APL and most other programming environments do not provide suitable means to enforce the isolation and communication control conventions that are appropriate for large applications. Instead isolation depends on the good intentions and discipline of the implementers and the maintenance programmers.
Teaching a topic in cybernetics with APL
Authors: Peelle Howard A. 
Published: January 2007

This paper describes a curriculum unit in which APL is used to introduce models of neural networks. It begins with a simple model for transmitting impulses among a vector of logical neurons; then a more sophisticated model is developed with thresholds, decay, and inhibition in a matrix of neurons; then a general model is offered for higher order arrays of neurons, with dynamic input and automated impulse propagation; and, finally, the APL functions are embodied in an easy-to-use simulation package.
Possible extensions of these models are proposed as student programming projects; some other related topics are identified as potentially suitable for teaching with APL; and implications for computer science education are mentioned.
Some implications of APL order-of-execution rules
Authors: Lathwell Richard H. 
Published: January 2007

An implementation of APL is necessarily a rigid encoding of the rules of the language, including a de facto order in which expressions are evaluated. The order of execution is perceived in an APL program by the way in which side effects such as nested specification, specification of global variables within defined functions, and shared variable values affect the outcome of expressions.
Concern about variation among implementations and distasteful results (see for example, “APL Problems with Order of Execution”, Clark Wiedmann, in the March 1978 issue of Quote Quad) led to a proposed definition for the order of evaluation of APL expressions which received general acceptance at an APL implementors' workshop at Minnowbrook in September 1977.
The refined “right to left” evaluation rule is examined and compared with other possible choices, through the use of simple APL syntax analysis models, to determine its implications on storage requirements, computation requirements, and mathematical identities.
Development of an APL standard
Authors: Falkoff A. D. , Orth D. L. 
Published: January 2007

Following an extended period of development, with more than half a dozen iterations, a standard for APL was not long ago adopted for use within IBM. In this paper we offer some highlights of our experience in this development process, as well as an appendix containing the technical matter in the standard itself. If a standards effort should get under way in the wider APL community, this experience and its work product may perhaps be found useful, and it is offered here in recognition of this possibility, without any commitment on the part of the IBM Company to support or not support such an effort. It should also be understood that this material is not offered as a specification of the function or performance of any particular IBM product.
Standards in a field as rapidly changing as computers are not static. This is particularly true with respect to a language like APL, which is still actively evolving. Hence, the document in the Appendix can only be regarded as a snapshot of where we are now. It does not by itself convey any idea of the development process that produced it, just as it does not necessarily represent in any specific detail what it might be in the future. In this paper, then, we will try to show something of the dynamics of the process we participated in by discussing the evolution of several significant aspects of the standard, and sketching the outlines of some of the broader issues that affected the result.
The paper has three sections. The first deals broadly with the question of what the standard should include; the second is concerned with the structure and tools of description; and the third traces the development of three technical issues.
Prototyping techniques for different problem contexts
Authors: Gutierrez O. 
Published: January 2007

Rapid prototyping and other experimental techniques are playing an increasingly important role in software development. Some common issues that concern their adoption are identifying the place in a system's life cycle where they may be appropriate, and selecting which tools to use. This paper presents a model of different problem types, suggesting that a fit must be found between the nature of the problem at hand and the features associated with available techniques. Emphasis is placed on the fact that most commercial tools are suitable for only certain problem types.
Some areas of further development are highlighted and implications concerning human-computer interaction discussed.
Design environments for constructive and argumentative design
Authors: Fischer G. , McCall R. , Morch A. 
Published: January 2007

Design Environments are computer systems which support design by enabling cooperative problem solving between designer and computer. There are two complementary problem solving activities in design: constructive design and argumentative design. We have created two computer-supported environments, CRACK and VIEWPOINTS, to support these two activities.
CRACK is a knowledge-based critic which has knowledge about how kitchen appliances can be assembled into functional kitchens. VIEWPOINTS is a hypertext system based on the IBIS design methodology and contains useful information about the principles of kitchen design. The integration of these two types of systems will eliminate shortcomings of the individual systems.