https://archive.org/details/cdc-apl-2-assembler-listing

Software Preservation Group of the Computer History Museum

APL History Collection

Lee Courtney, Christian Langreiter, and Paul McJones, editors

Last modified 27 March 2026

Abstract

The goal of this project is to preserve primary and secondary source materials including source code, documentation, memos, and papers concerning the APL language and its implementations.

Contents

Language

Kenneth E. Iverson began developing a notation for array manipulation in 1957 at Harvard University. He continued this work after joining IBM in 1960, and began a life-long collaboration with Adin D. Falkoff. Their paper [Falkoff1978] from the first History of Programming Languages conference traces the history of the language development in some detail. The notation, most famously treated in [Iverson1962], began its transition to an actual programming language at first via experiments by others [Hellerman1964], [Abrams1966]. With the introduction of APL\360 in 1968, the language reached critical mass and has been widely used, implemented, and extended ever since.

Iverson received the ACM Turing Award for 1979 [Iverson1980].

[Abrams1966]
Philip S. Abrams. An Interpreter for "Iverson Notation." Technical Report CS47, Computer Science Department, Stanford University, 1966. PDF at i.stanford.edu
[Falkoff1964]
A. D. Falkoff, K. E. Iverson, and E. H. Sussenguth. A formal description of SYSTEM/360. IBM Systems Journal, Volume 3, Number 3, 1964, pages 198–261. PDF at ibm360.info
[Falkoff1968]
A. D. Falkoff and K. E. Iverson. APL\360 User's Manual. IBM Corporation, August 1968. PDF
[Falkoff1973]
A. D. Falkoff and K. E. Iverson. APL SV Users Manual. IBM Philadelphia Scientific Center. 1973. PDF
[Falkoff1978]
Adin D. Falkoff and Kenneth E. Iverson. The evolution of APL. History of programming languages. Association for Computing Machinery, New York, 1978, pages 661–674. ACM Digital Library / PDF at www.cs.tufts.edu
[Hellerman1964]
H. Hellerman. Experimental personalized array translator system. Commun. ACM Volume 7, Number 7, July 1964, pages 433–438. ACM DIgital Library
[Iverson1960a]
Kenneth E. Iverson. The Description of Finite Sequential Processes. Preprint of a paper presented at 4th London Conference on Information Theory, August 1960. Ditto machine copy, two colors. PDF b&w (945 KB) PDF color (5.6 MB)
[Iverson1960b]
Kenneth E. Iverson. Automatic Data Processing, Chapter 6: A Programming Language. 1960. Draft of book chapter, apparently not actually included in book of that title with Fred Brooks. Ditto machine copy, two colors. PDF b&w (7.5 MB) / PDF color (30.2 MB)
[Iverson1962]
Kenneth E. Iverson. A Programming Language. Wiley, 1962. Posted online with permission from Jean Iverson. PDF
[Iverson1963]
Kenneth E. Iverson. Programming notation in systems design. IBM Systems Journal, Volume 2, Number 2, pages 117–128, 1963. PDF at bitsavers.org
[Iverson1978]
Kenneth E. Iverson. Operators and Functions. Report RC 7091, APL Design Group, Research Division, Yorktown Heights, IBM Corporation, 2 April 1978. PDF
[Iverson1980]
Kenneth E. Iverson. Notation as a tool of thought. Commun. ACM, Volume 23, Number 8, August 1980, pages 444–465. ACM Digital Library

Implementations

IBM 7094 (Stanford and IBM Research)

APL was first implemented by Philip S. Abrams and Lawrence M. Breed, based on study of [Iverson1962]. Abrams was a graduate student at Stanford University, taking CS 239 from Professor Niklaus Wirth [Abrams1966]. Breed was at IBM Research. It was written in FORTRAN IV for the IBM 7090 under the IBSYS operating system, and took input on punched cards. Falkoff and Iverson were able to experiment with it interactively for a brief period by running it under IBM's experimental time sharing monitor (TSM) [Falkoff1978].

APL\360 (IBM System/360)

See https://aplwiki.com/wiki/APL%5C360

Source code

Documentation

Program libraries

Applications

APL\1130

See https://aplwiki.com/wiki/APL%5C1130

Source code

Documentation

APL.SV

See https://aplwiki.com/wiki/APL.SV

Documentation

APL 5100

See https://aplwiki.com/wiki/APL_5100

Documentation

APL2 (IBM)

See https://aplwiki.com/wiki/APL2

Source code

Documentation and technical reports

Brochures and data sheets

APL*PLUS (Scientific Time Sharing Corporation)

See https://aplwiki.com/wiki/APL*PLUS

Documentation

SHARP APL (I. P. Sharp Associates)

See https://aplwiki.com/wiki/SHARP_APL

Source code

Documentation

York APL (York University)

See https://aplwiki.com/wiki/York_APL

Documentation

APL/B5500 (Burroughs B5500 from University of Washington)

See https://aplwiki.com/wiki/APL/B5500

Source code

Documentation

APL/700 (Burroughs B6700/B7700)

See https://aplwiki.com/wiki/APL/700

Documentation

APL*CYBER (Control Data Corporation)

APL*CYBER runs on all models of CONTROL DATA CYBER 70 Series and 6000 Series computers under the KRONOS operating system.

Documentation

APL*STAR (Control Data Corporation)

APL*STAR runs on all models of CONTROL DATA STAR Series computers. 

Documentation

APL 2 (Control Data Corporation)

See https://aplwiki.com/wiki/CDC_APL_2

The APL 2 system, formerly named APLUM, was developed under the direction of James H. Burrill at the University Computing Center of the University of J.1assachusetts. (The APL 2 system accepts files and workspaces produced by the APLUM system with full compatibility.) The manual is a Control Data adaptation of the APLUM Reference Manual (second edition, 1975) by Clark Niedmann. It runs under the NOS operating system.

Source code

Documentation

Xerox APL

See https://aplwiki.com/wiki/Xerox_APL

Xerox APL runs on the Xerox 560 and Sigma 6/7/9 Computers under Control Program-V (CP-V).

Source code

Documentation

Multics APL (Honeywell)

Multics APL runs under Multics Software Release 11.0.

Documentation

APL-Basic and APLSF (System Functions) (Digital Equipment Corporation)

The DECsystem-10 implementation of APL was developed by Richard Fennell, Frederick Pollack, and William Price under the guidance of Dr. Alan J. Perlis of the Department of Computer Science at Carnegie-Mellon University. The APLSF enhancements were made by Frederick Pollack. The conversion to the DECSYSTEM-20 was done at Digital Equipment Corporation.

Documentation

VAX APL (Digital Equipment Corporation)

VAX APL runs on VAX computers under the VMS operating system.

Documentation

MCM (Micro Computer Machines)

See https://aplwiki.com/wiki/MCM/70 and https://en.wikipedia.org/wiki/MCM/70

Documentation

Brochures and other sales/marketing collateral

CRMS APL (University of California)

CRMS APL was a one-off system built at the Center for Research in Management Science at the University of California, Berkeley. It ran on a pair of Digital Scientific Meta4 computers; one was microcoded as a virtual machine for an APL dialect. The archival web site contains a number of documents from the project and scans of listings of several components, including the APL virtual machine microcode.

APL\3000 (HP 3000)

See https://aplwiki.com/wiki/APL%5C3000

Documentation

APL/Z80

APL in Education

Research on APL Implementation

Books about APL

Videos/DVDs

Further Resources