Re: Algol history, was specifying semantics

glen herrmannsfeldt <gah@ugcs.caltech.edu>
Mon, 7 Jul 2014 19:49:25 +0000 (UTC)

          From comp.compilers

Related articles
[8 earlier articles]
Re: Algol history, was specifying semantics anton@mips.complang.tuwien.ac.at (2014-07-03)
Re: Algol history, was specifying semantics ivan@ootbcomp.com (Ivan Godard) (2014-07-03)
Re: Algol history, was specifying semantics wclodius@earthlink.net (2014-07-04)
Re: Algol history, was specifying semantics gah@ugcs.caltech.edu (glen herrmannsfeldt) (2014-07-07)
Re: Algol history, was specifying semantics ivan@ootbcomp.com (Ivan Godard) (2014-07-07)
Re: Algol history, was specifying semantics gah@ugcs.caltech.edu (glen herrmannsfeldt) (2014-07-07)
Re: Algol history, was specifying semantics gah@ugcs.caltech.edu (glen herrmannsfeldt) (2014-07-07)
| List of all articles for this month |
From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups: comp.compilers
Date: Mon, 7 Jul 2014 19:49:25 +0000 (UTC)
Organization: Aioe.org NNTP Server
References: 14-06-010 14-06-023 14-06-025 14-06-027 14-06-030 14-06-031 14-06-035 14-07-001 14-07-005 14-07-015 14-07-018 14-07-019
Keywords: algol60, history, assembler
Posted-Date: 07 Jul 2014 21:51:30 EDT

Ivan Godard <ivan@ootbcomp.com> wrote:
>> [As far as I know, the machine readable source was lost.
>> Even with a copy of the source, you'll need a copy of PL360, the
>> Algol-flavored assembler it was written in. -John]


> IMO, PL360 was the best language work that Wirth ever did.


(snip)


> The key idea was the absence of operator precedence; expressions were
> executed in strict left-to-right order, with operations for each machine
> op and explicit register names for operands:


> r5 := r3 + r2 * r1; (PL360)


> The target register served as the accumulator for the expression.


It gets even more interesting, as I remember it, if the left side
register is also on the right. Consider:


      r1:= r1 + r1 + r1;


which, in effect, multiplies r1 by four. As you note, r1 is the
accumulator for the expression, and also changes as it is being
evaluated:


        LR R1,R1
        AR R1,R1
        AR R1,R1


Remembering from 40 years ago, I believe that one is in the manual.


-- glen


Post a followup to this message

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