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
 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