This question was inspired by recent discussion on early keyboards and character sets, and mention in passing about how the COBOL designers were concerned about not using "non-existent" symbols.
Did any computer input device carry all characters required to write Algol 60 as it appeared in the reference language?
The complete set of Algol Basic Symbols (per the Revised Report are these:
Letters: A-Z a-z
Digits: 0-9
Arithmetic operators: + − × / ÷ ↑
Relational operators: < ≤ = ≥ > ≠
Logical operators: ≡ ⊃ ∨ ∧ ¬
Sequential operators: goto if then else for do
Separators: , . ₁₀ : ; := ␣ step until while comment
Brackets: ( ) [ ] ‘ ’ begin end
Declarators: own Boolean integer real array switch procedure
Specificators: string label value
Boolean values: true false
Due to limitations in the site markup language, the symbols that are written in boldface are to be understood as being underlined; the reference language uses underlining (as available on typewriters), though publications often use boldface, as I have done here.
Technically, each underlined word is to be considered as a single indivisible symbol which has no relationship to the individual letters of which it is composed. The same consideration applies to the becomes-symbol := and the subscript-10 symbol ₁₀ (both of which are made up of two characters in this posting).
If I have counted correctly, there are 116 distinct symbols.
I should clarify what I mean by "Did any computer input device carry all characters?".
I do not require that for each basic symbol, that a single keystroke represent the symbol on input. Pretty obviously, it's unlikely to be true in cases such as begin, which is more likely to require at least 7 keystrokes: underline-on, the letters b,e,g,i,n, and underline-off. The operations of underline and overstrike can be used to build up a symbol from parts. Less-than-or-equal might, for example, be underlined-less-than. Not-equals might be equals-backspace-slash. The becomes-symbol can be keyed as plain old colon, equals.
HOWEVER, the printed/displayed symbol should be in some reasonable way look like the symbol in the reference language. So, begin really has to be underlined and lowercase. On the other hand, if there's an implementation that otherwise manages a high degree of fidelity to the Report except that it needs to use some stropping regime (like "begin" for begin), that would be interesting to see.
I'm not concerned for this question with the internal symbol encoding. It's not relevant how many characters-worth of storage it takes to store begin in memory or on disc. This is a question about source-language input.
P
at the beginning of a statement line and the interpreter inputted and displayed the “character”PRINT
. And that wasn’t a shortcut but a single character, 0xF5. You couldn’t use P followed by R followed by... etc. even if you wanted to. Also,>=
was one character code, distinct from the combination of>
followed by=
. And so on. So, such things have been done.