Call by name shouldn't be that hard. Basically it means constructing the implied
function, and passing a reference to that function. Incidentally, Algol 68 does not have
call by name, that's one of the Algol 60 oddities that it dropped (just as everyone
else did).
If you want BEA, you could start with PDP-11 Algol -- which is basically a 16 bit subset
of BEA.
paul
On Apr 5, 2013, at 2:20 PM, <hvlems at zonnet.nl>
wrote:
How difficult is it to implement call by name? I've always assumed that call by
reference got popular because it's easier. Call by name may be rather powerful (or
complex :) like Jensen's device.
Once you got that, would it be possible to grow it into a Burroughs Extended Algol
compiler :-) ?
-----Original Message-----
From: <Paul_Koning at Dell.com>
Sender: owner-hecnet at Update.UU.SE
Date: Fri, 5 Apr 2013 18:11:48
To: <hecnet at Update.UU.SE>
Reply-To: hecnet at Update.UU.SESubject: Re: [HECnet] Algol compiler for VAX/VMS?
On Apr 5, 2013, at 1:44 PM, Mark Wickens wrote:
On 05/04/2013 17:36, Paul_Koning at
Dell.com wrote:
Bob There is also a full Algol68 compiler called algol68g
http://jmvdveer.home.xs4all.nl/algol.html-- but that one is targeted to Intel CPUs. I
suppose you could write a new back end... paul
This might be worth a look - isn't it an interpreter rather than a compiler? You chuck
an .a68 file at it and it runs it.
Otherwise, I might be wrong ;)
Regards, Mark.
It's described as a compiler, I haven't tried it yet.
BTW, please note that Algol 60 and Algol 68 are entirely different languages. Algol 68
is at least as distant from Algol 60 as Modula-2 is. The similarity in names is quite
misleading.
Not only are the languages very different, but so is the implementation complexity. An
Algol 60 compiler is not all that hard. One could easily imagine trimming down the
Pascal front end for GCC to do Algol 60 instead. There are one or two oddball things to
cope with (like call by name) but apart from that, it's not difficult to parse and
introduces no great complexities. Algol 68 is a very different matter. The ALgol 68 G
page talks about its context sensitive grammar and various other things that might explain
why algol68g is a separate implementation rather than a GCC front end. (Too bad it
isn't, then you'd have a VAX port at the cost of a build, give or take the GCC VAX
code generation bugs.)
paul