Re: Closing keywords (was Re: Algol, and language design) (Richard A. O'Keefe)
Tue, 14 Aug 90 16:36:36 GMT

          From comp.compilers

Related articles
Closing keywords (was Re: Algol, and language design) (1990-07-27)
Re: Closing keywords (was Re: Algol, and language design)!decvax!decwrl!garth!phipps (1990-08-10)
Re: Closing keywords (was Re: Algol, and language design) (1990-08-14)
| List of all articles for this month |

Newsgroups: comp.lang.misc,comp.compilers
From: (Richard A. O'Keefe)
Keywords: Pascal, design, Algol68
Organization: Comp Sci, RMIT, Melbourne, Australia
References: <> <> <>
Date: Tue, 14 Aug 90 16:36:36 GMT

In article <>, writes:
> As far as the syntax is concerned, Modula deviates from its ancestor
> Pascal in an essential respect: statement structures consistently
> follow a single guiding rule. Every structured statement begins with
> a keyword (uniquely identifying the kind of structure) and ends
> with a closing symbol.

The curious thing about this is that Pascal was designed at least in part
as a reaction *against* Algol 68, in which the "arms" of structured
statements were "serial clauses" and each structured statement had its own
kind of terminator. Well, sort of. You could always use ( and ), so

begin s1; ...; sn end
=> ( s1; ...; sn )
if c1 then t1 elif c2 then t2 ... else f fi
            => ( c1 | t1 |: c2 | t2 ... | f )
case c in s1, s2, ..., sn out f esac
              => ( c | s1, s2, ..., sn | f )

though you couldn't use (..) for loops. So Modula syntax was a reversion
to the Algol 68 approach.

Does anyone know where the idea came from in Algol 68? Did Wirth ever
say why Pascal didn't imitate _that_ aspect of its distinguished predecessor?
[It is my impression that Algol68 sprang more or less whole from Van
Wijngaarden's (I hope that's right) brain, but I haven't dug into its
history in any detail. There is lots of great stuff in Algol68 that is
slowly being rediscovered; any student of programming languages should look
at it. -John]

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.