---
title: "Notation as a Tool of Thought"
authors:
  - "Kenneth E. Iverson"
year: 1980
venue: "Communications of the ACM"
arxiv: null
doi: "10.1145/358896.358899"
source: "https://www.jsoftware.com/papers/tot.htm"
topics:
  - array-programming-apl-bqn-q
  - computational-linguistics-interfaces
seed_rank: 45
seed_batch: "prefill-2026-08-13"
reviewed: "2026-08-13"
pool: "languages"
relevance_score: 10
cites:
  - title: "A Programming Language"
    url: "https://www.jsoftware.com/papers/APL.htm"
    year: 1962
    arxiv: null
    doi: null
  - title: "Operators"
    url: "https://doi.org/10.1145/357073.357074"
    year: 1979
    arxiv: null
    doi: "10.1145/357073.357074"
see:
  - "049-a-programming-language"
  - "156-operators"
---

# Notation as a Tool of Thought

## One-sentence takeaway

Iverson’s 1979 Turing Award lecture argues that a well-chosen executable notation — APL — is not sugar on top of thought but the medium in which algorithms become thinkable.

## Why it matters here

This is ano’s philosophical charter: masked bulk operations, rank, and a small verb vocabulary exist so the programmer can *see* the transform. Notation is a design constraint, not a skin.

## Key ideas

- Criteria for a good notation: ease of expressing constructs arising in problems, suggestivity, the ability to subordinate detail, economy, and amenability to formal proofs.
- APL’s array verbs and operators (reduce, scan, inner/outer product) are exhibited as thoughts you cannot have as easily in scalar loops.
- Identities (e.g. scan/reduce dualities, inner-product factorizations) are treated as theorems the notation makes obvious — the ancestor of “notation as a tool” for BQN and ano.
- The lecture is CACM 23(8), August 1980; the talk itself was 1979. Jsoftware hosts the canonical HTML.
- Companion pieces: the 1962 book *A Programming Language* and the 1979 CACM *Operators* paper.

## Caveats

## Links

- HTML: https://www.jsoftware.com/papers/tot.htm
- DOI: [10.1145/358896.358899](https://doi.org/10.1145/358896.358899)
