On Jan 14, 2025, at 2:35 PM, Frank Leonhardt via
cctalk <cctalk(a)classiccmp.org> wrote:
On 13/01/2025 21:11, Paul Koning via cctalk wrote:
On Jan 13, 2025, at 3:57 PM, ben via cctalk
<cctalk(a)classiccmp.org> wrote:
> On 2025-01-13 12:18 p.m., Brent Hilpert via cctalk wrote:
>
> Huh? Are you saying ALGOL (60) doesn't have [ ] ???
>
> Remember that ALGOL predates ASCII. There weren't standard character sets at the
time. Also, plenty of people have implemented ALGOL on ASCII or EBCDIC machines; it's
not hard to think up a way of dealing with the keywords and operators.
This is very true. The first (and only) Algol I use was on the Elliott 803 which had
Baudot 5-hole paper tape (and teleprinters). It was the first commercial Algol compiler
ever written, and included real world extensions like PRINT, READ and MOVETO, DRAWTO and
stuff for the plotter.
Because of the Baudot there was no ';' to be seen, never mind { and }. And no
lower case, of course. The end of statement was indicated with an apostrophe (or single
quote), and things like >= were GREQ, LESSEQ or what-have-you. * was multiply
(something that stuck this day!) and ** was exponent. Remember that before ASCII, a
multiply and divide symbol was common, as well as single character >= <= and != - if
you had a fancy enough terminal! DIV was divide (I don't think there was a '/'
available anyway)
Eek.
I learned on the THE system at TU Eindhoven. That was an Electrologica X8 system with a
very nice OS designed and built by Dijkstra. For input it used Flexowriters to do
off-line paper tape punching, in a 6 bit code (puched as 7 bits, one being parity), giving
upper and lower case plus assorted special characters. Dijkstra once commented that it
was nice to be able to order custom characters on their Flexowriters. So it had the
"and" and "or" symbols, a "not" symbol, and non-escaping _
and | characters so you could construct ALGOL keywords by typing, say, _b_e_g_i_n or
not-equal as |= . That allowed some non-standard characters, |< and |> for string
delimiters for example.
ALGOL 68 made the notion of different representations a formal part of the definition, so
the Report spoke of "bold" symbols, leaving it up to an implementation to
represent those as underlined symbols, "stropped" symbols meaning words enclosed
in single quotes, or reserved words. All those were options chosen in various ALGOL 60
compilers but at that time it wasn't a specifically documented thing.
paul