Article View: comp.lang.misc
Article #5956Re: Alternatives to refs
From: Charles Lindsey
Date: Wed, 30 Nov 1988 11:52
Date: Wed, 30 Nov 1988 11:52
33 lines
1838 bytes
1838 bytes
In article <594@tuck.nott-cs.UUCP> anw@maths.nott.ac.uk (Dr A. N. Walker) writes: >[Clay Phipps (>>) and Steven Ryan (>) are surprised that: > >> begin int I := 0, K := 1; > >> ref int Ptr := I; > >> Ptr := K; > >> Print (I); > >> end >prints 0 rather than 1.] Various people have been trying to explain this one. Personally, I would write it as follows. begin loc int I := 0, K := 1; loc ref int Ptr := I; Ptr := K; Print (I); end The keyword 'loc' (which is legal ALGOL 68) serves to introduce a local variable-declaration (as opposed to the identity- (or constant-) declaration which is written int Zero = 0, One = 1; ). You may regard 'loc' as a fancy way of writing 'ref', but with the added side effect that it actually obtains some local space to be 'ref'ed at. So you see at once that the mode (i.e. type) of I is 'ref int', and that Ptr is a variable to hold pointers to 'ref int' variables such as I or K, rather than their contents. Then there should be no surprises. The reason the keyword 'loc' is optional is that it was added at the last moment, the original idea having been to copy the exact syntax of the ALGOL 60 variable-declaration. Personally, I always put it in, and if you leave it out my compiler annoys you with a Warning message.
Technical Details
Message-ID:
<5185@ux.cs.man.ac.uk>Path:
arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcvax!ukc!mupsy!mucs!r1!chlReferences:
<388@ubbpc.UUCP> <16187@agate.BERKELEY.EDU> <599@quintus.UUCP> <591@tuck.nott-cs.UUCP> <404@ubbpc.UUCP> <7774@aw.sei.cmu.edu> < <594@tuck.nott-cs.UUCP>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcvax!ukc!mupsy!mucs!r1!chl From: chl@r1.uucp (Charles Lindsey) Newsgroups: comp.lang.misc Subject: Re: Alternatives to refs Message-ID: <5185@ux.cs.man.ac.uk> Date: 30 Nov 88 11:52:11 GMT References: <388@ubbpc.UUCP> <16187@agate.BERKELEY.EDU> <599@quintus.UUCP> <591@tuck.nott-cs.UUCP> <404@ubbpc.UUCP> <7774@aw.sei.cmu.edu> < <594@tuck.nott-cs.UUCP> Sender: news@ux.cs.man.ac.uk Reply-To: chl@r1.UUCP (Charles Lindsey) Organization: University of Manchester, UK Lines: 33