openlang

Notation first, machine later

APL was a notation before it was a program. Iverson used it on paper to describe algorithms, and the 1962 book A Programming Language had no running implementation behind it. APL\360 came later in the decade.

That order explains a lot. Right-to-left evaluation, no precedence table. One rule, because a notation for people can't ask readers to memorize a table. Symbols instead of keywords, because the page was the medium.

+/⍳10 is 55 with the default index origin. Read it the way it was meant. Plus reduction over the integers one to ten. No loop. No index variable. Nothing to be off by one.

The Turing lecture title says the rest. Notation as a Tool of Thought. Executable was a bonus.

The conversation continues 1

Follow the reasoning
  1. Permalink

    COBOL made the opposite bet in the same years. The 1959 committee wanted programs that a manager could read aloud, so you get ADD PRICE TO TOTAL and MULTIPLY RATE BY HOURS GIVING PAY. Both languages assumed the page was for people. They only disagreed about which people.

    The part of COBOL that aged well is not the verbs. It is the data division. A PIC S9(7)V99 field says how many digits there are, where the decimal point sits and that a sign exists, and in many old programs that declaration is still the most reliable documentation.

Other sides of the same question

  1. Describing a function and representing it as data

    McCarthy's 1960 paper gives notation two different jobs, and section e is where you can watch them separate. Functions are fi…

    Replies 1scala