A Programming Language
Kenneth E. Iverson

Preface
 
Chapter 1   The Language
 1.1 Introduction
 1.2 Programs
 1.3 Structure of the language
 • Conventions
 • Literals and variables
 • Domain and range
 1.4 Elementary operations
 • Arithmetic operations
 • Logical operations
 • Residues and congruence
 1.5 Structured operands
 • Elementary operations
 • Matrices
 • Index systems
 1.6 Rotation
 1.7 Special vectors
 1.8 Reduction
 1.9 Selection
 • Compression
 • Mesh, mask, and expansion
 1.10 Selection vectors
 1.11 The generalized matrix product
 1.12 Transpositions
 1.13 Special logical matrices
 1.14 Polynomials and positional number systems
 1.15 Set operations
 1.16 Ranking
 1.17 Mapping and permutation
 • Reordering operations
 • Permutations
 • Function mapping
 • Ordering vector
 1.18 Maximization
 1.19 Inverse functions
 1.20 Levels of structure
 1.21 Subroutines
 1.22 Files
 1.23 Ordered trees
 • Directed graphs
 • Ordered trees
 • Right and left list matrices
 • Well formation
 • The index matrix as a function of the degree vector
 • Tree, path, and level compression
 • Extension of other operations to trees
 • Homogeneous trees
 References
 Notes
 Exercises
 
Chapter 2   Microprogramming
 2.1 Instruction preparation
 • Additive indexing
 • Indirect addressing
 • Dynamic relocation
 • Branching, interruption, and trapping
 • Complete instruction fetch
 2.2 Instruction execution
 • Load and store
 • Branch instructions
 • Logical instructions
 • Arithmetic instructions
 • Shift instructions
 • Convert instructions
 • Input-output instructions
 2.3 Detailed logical design
 References
 Exercises
 
Chapter 3   Representation of Variables
 3.1 Allocation and encoding
 3.2 Representation of structured operands
 • The grid matrix
 • Linear representations
 • Nonlinear representations
 • Chained representations
 • Partitions
 • Pools
 • Summary
 3.3 Representation of matrices
 3.4 Representation of trees
 • Simplified list matrices
 • The use of left lists
 • Chain list matrices
 References
 Notes
 Exercises
 
Chapter 4   Search Techniques
 4.1 Scanning methods for ranking
 • Directed scan
 • Controlled scan
 4.2 Key transformations
 • Nonunique key transformations
 4.3 Multiple keys
 References
 Exercises
 
Chapter 5   Metaprograms
 5.1 Compound statements
 5.2 Lukasiewicz notation
 5.3 The minimax form of an L-formula
 5.4 Translation from complete parenthesis to Lukasiewicz notation
 5.5 Translation from Lukasiewicz to complete parenthesis notation
 References
 Exercises
 
Chapter 6   Sorting
 6.1 Serial sorting methods
 • Copy operations
 • Simple classification and merge
 • Classification and simple merge
 • Partial pass methods
 6.2 Evaluation of serial sorting methods
 • Simple classification and merge
 • Classification and simple merge
 • Partial pass methods
 6.3 Aids to serial sorting processes
 6.4 Internal sorting methods
 • Simple classification and merge
 • Classification and simple merge
 • Special internal sorting methods
 6.5 Evaluation of internal sorting methods
 • Expected number of transpositions
 • Bubble sort
 • Ranking sort
 • Odd-even transposition sort
 • Repeated selection sort
 • Sorting with replacement
 • Comparison of internal sorting methods
 Appendix to Chapter 6
 References
 Notes
 Exercises
 
Chapter 7   The Logical Calculus
 7.1 Elementary identities
 7.2 Canonical forms
 • Intrinsic vector
 • Characteristic vectors
 7.3 Decomposition
 • Disjunctive canonical form
 • Other canonical forms
 References
 Exercises
 
Summary of Notation
 S.1 Conventions
 • Basic conventions
 • Branching conventions
 • Operand conventions used in summary
 S.2 Structural Parameters, Null
 S.3 Relations
 S.4 Elementary Operations
 S.5 Vector Operations
 S.6a Row Generalizations of Vector Operations
 S.6b Column Generalizations of Vector Operations
 S.7 Special Matrices
 S.8 Transposition
 S.9 Set Operations
 S.10 Generalized Matrix Product
 S.11 Files
 S.12 Trees