Software Preservation Group of the Computer History Museum

Papers and Reports

Kenneth E. Iverson. The Description of Sequential Processes. B&W scan.
Kenneth E. Iverson. The Description of Sequential Processes. Preprint of a paper presented at 4th London Conference on Information Theory, August 1960. Ditto machine copy, two colors. B&W scan. 
Kenneth E. Iverson. The Description of Sequential Processes. Color scan.
Kenneth E. Iverson. The Description of Sequential Processes. Preprint of a paper presented at 4th London Conference on Information Theory, August 1960. Ditto machine copy, two colors. Color scan. 
AN INTRODUCTION TO APL FOR SCIENTISTS AND ENGINEERS
Ken Iverson - IBM Philadelphia Scientific Center. This is an introduction to APL addressed to the scientist or engineer and designed to exploit any previous acquaintance with the very similar notation of vector algebra. 
APL in Exposition
Ken Iverson - IBM Philadelphia Scientific Center. The following pages illustrate the use of APL for exposition in the teaching of various topics. The first section presents the characteristics of the language, and each of the succeeding sections illustrates its use in the presentation of material in some one discipline. 
INTRODUCING APL TO TEACHERS
Ken Iverson - Philadelphia Scientific Center. This paper presents such an introduction to APL for teachers of high school mathematics. 
THE USE OF APL IN TEACHING
The present work consists of a summary of eight lectures delivered by Dr. Kenneth Iverson at Queen's University on March 21 and 22, 1968, to an enthusiastic audience of professors and High School teachers from Ontario and Quebec. 
APLSV User's Manual
A. D. Falkoff, K. E. Iverson - IBM Philadelphia Scientific Center. The major difference is the addition of a shared variable facility which provides simple and effective channels of communication between programs running at different terminals, and also forms a basis for managing files and high speed input and output from an APL terminal. The facility itself is managed by a group of dynamically executable system functions provided for this purpose. 
Collected Whizbangs
Roy A. Sykes - Scientific Time Sharing Coporation. In December 1974 Scientific Time Sharing Corporation held a seminar for its APL*PLUS Service Representatives. One outcome of that seminar was a "wish list" of goodies these marketing folks would like to have. On that list, they expressed a desire for some sort of "APL Whizbang" -- a column describing neat programming tricks that would illustrate some powerful, but perhaps not obvious, features of the language. 
An Introduction to APL
Dennis Taylor - Xerox Data Systems. Xerox Data Systems introduction to APL on the Sigma-6/7/9 series of mainframes. 
CRMS APL PROCESSOR REFERENCE MANUAL
Paul McJones - University of California Berkeley. One of the major goals of the new CRMS computer system is to provide efficient, time-shared APL. 'The system contains two processors with common main (core) and auxiliary (disk) memories, as well as controllers for a variety of peripheral devices. One processor (the primary subject of this document) is specially tailored for the execution of APL programs. The other processor is optimized for executing programs in the SIMPLE programming language and is described elsewhere. 
Compiling APL: The Yorktown APL Translator
Graham C. Driscoll, Jr and Donald L. Orth - IBM Thomas J. Watson Research Center. The Yorktown APL Translator (YAT) permits functions written in APL to be compiled using an existing compiler for part of the process it also creates tables that allow the APL2 Release 2 interpreter to call the compiled code. The code can also be called from a Fortran main routine. This paper outlines the history of APL compilation, the motivation for producing YAT, the design choices that were made, and the manner of implementation. Sample APL functions and their translations are shown, and the time required to interpret these functions is compared with the time required to execute the compiled code. Possible furtherwork is discussed. 
An APL Machine
Philip S. Abrams - Stanford Linear Accelerator Center. This dissertation proposes a design for a machine structure which is appropriate for APL and which evaluates programs in this language efficiently. 
APLSV Operations Guide IBM SH20-1461-0 by Chris Langreiter —
"This manual contains the information necessary to install, operate and maintain APLSV and TSIO. TSIO is an IBM-supplied auxiliary processor which provides access to Operating System datasets from APLSV terminals. [...]" (Contributed by Luis Bengochea) 
The APL IDIOM LIST
  
A SOFTWARE HIGH PERFORMANCE APL INTERPRETER
The design of a high performance APL system is presented along with an evaluation of the performance improvement measured on a partial implementation. The system contains a compiler which translates APL into the instructions of a virtual APL machine. Numerous special techniques suitable for optimized interpretation of this virtuaI machine entirely in software on a System 370 are described. The overhead for executing APL programs has been reduced by a factor ranging between 5 and 10 when compared to cciverrti oneI interpretive systems. One realistic example is analyzed in depth; there the compiled version runs 6 to 8 times faster than APLSV (Version 1.2) . 
ALGORITHMS FOR ARTIFICIAL INTELLIGENCE IN APL2
Many great advances in science and mathematics were preceded by notational improvements. While a given algorithm can be implemented in any general purpose programming language, discovery of algorithms is heavily influenced by the notation used to investigate them. APL2 conceptualy applies functions in parallel to arrays of data and so is a natural notation in which to investigate parallel algorithims. No claim is made that APL2 is an advance in notation that will precede a breakthrough in Artificial Intelligence but it is a new notation that allows a new view of the problems in AI and their solutions. APL2 can be used all problems practitionally programmed in LISP, and is a possible implementation language for PROLOG-like languages. This paper introduces a subset of the APL2 notation and explores how it can be applied to Artificial Intelligence. 
My Favorite Idiom
This paper discusses APL idioms: what they are, which ones are commonly recognized by people, which ones can be recognized by the APL2 interpreter, and which ones are recognized by the APL2 interpreter. Included is a discussion of why idioms are so valuable. 
Idioms and Problem Solving Techniques in APL2 by Lee Courtney —
Idioms form an intermediate language, higher level than individual primitives but lower level than subfunctions. When a common task arises (such as sorting a vector of strings), and the programmer knows the idiom that performs that task, the task is immediately solved using the idiom. An order of magnitude gain in programmer productivity is not uncommon. The use of idioms increases readability, while allowing API implementors to optimize through idiom recognition. 
SPARSITY AND APL
A definition of Sparse APL is proposed. A review of Sparse Matrix Research is presented and related to the current APL language and systems. Presented next is a discussion of the possible extensions of classic Sparse Matrix methods that would be required in a "Sparse Array" implementation of APL. This includes a discussion of a suggested research direction. Some relationships of Sparse APL to other fields outside of APL are mentioned. Finally, a list of open questions is interposed for anyone interested in pursuing some of these questions. 
SHARP APL Utility Library Catalogue
THIS CATALOGUE CONSISTS OF THREE PARTS: AN INDEX OF THE CATEGORIES OF THE UTILITY LIBRARY, SUMMARIES OF THE UTILITIES FOUND IN EACH CATEGORY, AND DETAILED DESCRIPTIONS OF EACH UTILITY IN THE LIBRARY. 
APLIO Generalized APL-OS Interface Utilities
A set of utilities for transferring data to and from the APL subsystem (in this case STSC APL/Plus) to the underlying operating system (at UTA this was IBM's OS/MVT). This was a custom written package from the Computer Center at the University of Texas at Arlington. 
APL2 and Artificial Intelligence Parallel and Search Papers
This paper discusses search strategies and shows how they can be implemented in APL2 without reqard to the particular problem being addressed. The three strategies demcnstrated are Depth First Search, Breadth First Search, and Best First Search. They will be exercised by applying them to an 8 puzzle. The implementations take advantage of APL2 functional style and the ability to pass functions as parameters to programs. 
APL2 - What's New
APL2 Release 3 provides substantial new and changed function in comparison to previous releases of APL. This document itemizes the new features and changes. provides a brief description of each and directs the user to the appropriate APL2 Release 3 publications which contain additional information, The new and changed function is presented in no specific order. 
TIME Where Did It Go?
One of the most popular features of APL2 Release 3 is the performance analysis tool. It consists of a single external API function, called TIME, that allows the lIC\Cf to extract relative timing information by function I or by line. Timing information may be extracted for selected functions for all functions in the workspace. Monitoring may be selectively enabled or disabled.
Vectorized APL2: Design and Implementation
This report discusses some of the design factors affecting the implementation of support for the 3090 Vector Facility in APL,2. The vectorization of the reduction operator is used as a detailed example of the design process. 
The Use of APL In Teaching
The present work consists of a summary of eight lectures delivered by Dr. Kenneth Iverson at Queen's University on March 21 and 22, 1968, to an enthusiastic audience of professors and students.
APL as a Language for Handling a Relational Data Base
Using APL as a language for accessing a relational database. 
Elementary Algebra
Using APL to teach elementary algebra 
MIGRATION FROM APL SV TO VSPC
This report discusses system considerations necessary to smoothly migrate an APL SV installation to VS APL under VSPC. It outlines migration strategies and procedures. It also describes what the Conversion program does. 
HP Journal APL Issue
Overview of APL for the HP3000 minicomputer 
Technical Report - CONSIDERATIONS IN THE DESIGN OF A COMPILER FOR APL
This paper first presents a selected annotated bibliography of eight papers which address the question of the efficient execution of APL programs. Based on the results of these studies, the
Research Report - Operators and Functions
This paper treats the syntax of operators in APL, presents definitions of a number of new operators and functions, and provides examples of their use. 
Tenative Compilation A Design for an APL Compiler
PhD Thesis, UC San Diego; This dissertation describes the design of a compiler for APL. 
APL Plus Collected WhizBangs
An Anthology Of Tutorials on APL Programming Techniques 
PROGRAMMING FOR PERFORMANCE IN APL3000
Design and implementation of performance techniques in APL\3000. 
The APL Jot Dot Times ORIGINAL BOOKLET FORMAT
Internal IBM APL publication for APL running on Kingston mainframe 
The APL Jot Dot Times
  
A Source Book in APL
Papers by Adin D. Falkoff and Kenneth E. Iverson; The purpose of this book is to provide background material for teacher and student of APL. 
THE DYNAMIC INCREMENTAL COMPILER OF APL 3000
Paper describing HP's APL\3000 incremental compiler, design and implementation. 
Technical Report - THE PRINCIPLES OF APL2
Technical Report describing APL2 
Migrating Applications to APL2
  
A development of APL2 syntax
This paper develops the rules governing the writing of APL2 expressions and discusses the principles that motivated design decisions. 
Research report - A Computer Gallery of Mathematical Physics - A Course Outline
Research Report A Computer Gallery of Mathematical Physics-A Course Outline 
Technical Report - Graphics Application Using Complex Numbers in APL2
This report explains and demonstrates the use of complex numbers in APL2 tor two-dimensional graphics applications. 
Technical Report - APL2 EXPLOITING DB2 AND SQL DS
  
AN OVERVIEW OF APL2
The aim of the document is to provide an overview of APl2. 
Technical Report - MULTI-USER SQL APPLICATIONS IN APL2
  
Technical Report - ALGORITHMS FOR ARTIFICIAL INTELLIGENCE IN APL2
Many great advances in science and mathematics were preceded by notational improvements. While a given algorithm can be implemented in any general purpose programming language, discovery of algorithms is heavily influenced by the notation used to investigate them. APL2 conceptualy applies functions in parallel to arrays of data and so is a natural notation in which to investigate parallel algorithims. No claim is made that APL2 is
Technical Report - INTERACTIVE PROGRAMMING IN A MULTIFACETED ENVIRONMENT
This monograph briefly describes the IBM program products that complement APL2, and explains how they are used in the APL interactive programming environment. 
Technical Report - INTERACTIVE SQL AND APL2
This paper is a tutorial on the use of AP 127, an APL2 auxiliary processor which interfaces to the relational databases SQL/Data System (SQL/DS) and IBM Database 2 (DB2) from the APL2 workspace. 
Technical Report - TECHNIQUES IN SQL APPLICATION DESIGN
This report identifies common technical and design issues that arise in creating an application for an interactive environment us1nq Structured Query Language (SQL). 
Technical Report - THE APL2 NAME ASSOCIATION FACILITY Understanding the APL-FORTRAN Connection
The APL2 Name Association facility allows APL2 application programs to call external functions written in other programming language., Including Assembler Language, FORTRAN, and in the CMS environment, REXX. 
Alice in Packageland
APL2 can take you to a marvelous new place called "packagcland ,. Alice fell into a package (rabbit?) hole and is confused about what package are, what to package, how to do it. and how to use it. We'll go in after Alice, and find a fascinating world of new ways to make APL2 more productive. 
System Programmers Guide to Tailoring Your APL2 TSO System
Installation and customization of APL2 under TSO involves a large number of APL2 and TSO installation options, installation exit points, PROCLIBs, PARMLIBs, LOGON procs and CLISTs. The goal of this paper is to help you make the right decisions in installing, ,customizing, and maintaining APL2. 
IBM Systems Journal - Twenty-fifth Anniversary APL
  
Writing Auxiliary Processors for APL2
This paper will provide a survey of those facilities and an example of their use. Included are services to provide data conversion, error handling, file system access. message formatting, multi-tasking, shared variable processing, terminal control, and dynamic virtual storage. 
Packaged Workspaces
This paper describes packaged workspaces, their uses, benefits and pitfalls. 
Primitive Function Performance of APL2
This document reports the results of timings of the Vector Facility (VF) support available on an IBM 3090/S processor using APL2 Version I Release 3 (with SPE PL34409). Included are execution times for selected primitive functions and expressions. The measurements were first taken with the VF utilization turned off and then again with the VF utilization turned on. The ratios scaIar+vector are also reported. 
APL2 and Vector Facility Experiences in Image Processing
Under a study contract with IBM: the German Cancer Research Center at Heidelberg (DKFZ) has thoroughly inveatigatcd thc vcctorisation opportunities of their broad spectrum of APL-based application programs. including measures to achieve additional performance gains. 
Technical Report - CALLS TO APL2
This document describes facilities which have been added to APL2 to allow applications written in languages other than APL to issue calls to APL2, to execute APL expressions, invoke API. functions. reference or specify APL variables, or to enter the APL2 interactive environment.