Algol mark sense card (about 1968)

Try it yourself!

Algol mark sense card

size in mm: w188, h83.

This is a 'mark sense' card, issued around 1970 by IOWO, the Dutch Institute for Development of Mathematics Education (today named Freudenthal Institute). It was used for teaching the Algol programming language to high school students.

Card punching machines or on-line terminals were much too expensive for high schools. The card stacks, usually not much larger than 30 cards per program, produced by a classful of students were (physically!) mailed to IOWO. There they were read and interpreted using a PDP11/40 minicomputer with a Datamation Model 300 card reader (this model was capable of reading pencil-marked cards as well as the usual punched cards).
The now electronically coded data was sent over a telephone line to the Cyber 73 mainframe computer of the University of Utrecht's computer centre (ACCU), where the Algol compiler resided. (In the initial phase of the project an Electrologica X8 machine was used).
The Cyber output (in many cases only error messages!) was communicated to the school the other way around. Total turn-around time must have been at least a full week!

Algol statements were composed by marking fields on the card with a soft pencil. An enlarged picture of a card column is included to the left for clarity. The two fields at the top of each column produce parentheses, or act as selectors if another field in the same column is marked.
The card-mark interpreter constructs program lines in the format suitable for the Cyber 73 Algol compiler. Reserved Algol words had to be enclosed in single quotes: 'BEGIN', 'GOTO'. In the definition of the 'reference language' in [1] the 'underscore' style begin, goto, and lower case letters were used. This style was also used in Dijkstra's first Algol compiler running on the Electrologica X8, using an adapted Flexowriter for input and output. The Cyber computers had a 6-bit character set with upper case letters only and used therefore a specific 'implementation' language, which also included a machine-specific set of i/o procedures (in fact no i/o mechanism at all was specified in the Algol 60 definition). Some of the fields in the first card column refer to these procedures:
Any Algol symbol could be entered also by marking a character string (enclosed in quotes in case of a reserved word). This was needed for all symbols not used so frequently as to merit a card field, like INFILE, RANDOM, CODE, and of course for user defined names.

For those not familiar with Algol 60 we present a short procedure in 'underscore' style, taken from the 'Report on the Algorithmic Language Algol 60' [1].

Below is an example of 'apostrophe' style Algol.


(January, 2017)