Xref: utzoo comp.lang.c++:3938 comp.lang.eiffel:298 Path: utzoo!attcan!uunet!mcvax!ukc!dcl-cs!aber-cs!thor!pcg From: pcg@thor.cs.aber.ac.uk (Piercarlo Grandi) Newsgroups: comp.lang.c++,comp.lang.eiffel Subject: Re: Eiffel vs. C++ Message-ID: Date: 8 Jul 89 21:27:05 GMT References: <2689@ssc-vax.UUCP> <6590138@hplsla.HP.COM> <149@eiffel.UUCP> <1559@cbnewsc.ATT.COM> <168@eiffel.UUCP> Sender: pcg@aber-cs.UUCP Organization: Coleg Prifysgol Cymru Lines: 59 In-reply-to: bertrand@eiffel.UUCP's message of 6 Jul 89 23:45:08 GMT In article <168@eiffel.UUCP> bertrand@eiffel.UUCP (Bertrand Meyer) writes: From <1559@cbnewsc.ATT.COM> by nevin1@cbnewsc.ATT.COM (nevin.j.liber): > [...] Assuming that you wanted to give the Eiffel > assignment operator different semantics than those given by > Algol/Pascal/Ada to ":=", why didn't you just pick another symbol (eg: > ".=")? Please elaborate. [Perhaps :-) would do for assignment?] :-) Remember this line for later on... Actually the Eiffel convention is the same as the Pascal and Ada ones for entities of pointer/access/reference types, which is the reason for keeping the same notation. Ugh. I beg to differ. Pascal and Ada have a concept of pointer, and indeed := is used by them to do *copy* of pointer objects. This is VERY different from Eiffel. The analogy cannot hold. In general it seems proper to avoid inventing a new notation where there is no real semantic innovation and a widely accepted notation exists, unless there are strong arguments against that notation. Eiffel, by doing without a concept of pointer (except by hack) and by having reference and copy assignments both under := blurs the distinction between EQ and EQUAL, that lispers know as being very fundamental. As one may expect, the properties of assignment in Eiffel are not identical to those of its counterparts in previous languages, but the differences do not seem big enough to warrant a totally new notation. Call it lack of courage if you will. Ahhh! Let me exhume old ghosts... Simula67 uses := for assignment, and :- for reference assignment. You would have invented nothing new, and adopted a well known tradition, if you had used :- for reference (in the Simula67 sense) assignment. Also, I am incredibly amused by the idea that actually :- *is* the leading part of :-)... NOTE: I find it worrying that the author of Eiffel, a person that I greatly esteem, is not extremely familiar with Simula67 and Lisp. Now some embarassing questions: Has he ever read the Simula67 Common Base standard? Simula BEGIN? What is Hash Consing and how does it relate to this discussion? What is rplac[ad] and how does it relate to this discussion? NOTE on NOTE: many will have noted (:->) that one of my pet peeves is moaning about the lack of historical perspective by most computer scientists (especially, let me say, American (ised :->) ones wrt much European research). I apologise in advance for the irritation this mania causes... -- Piercarlo "Peter" Grandi | ARPA: pcg%cs.aber.ac.uk@nsfnet-relay.ac.uk Dept of CS, UCW Aberystwyth | UUCP: ...!mcvax!ukc!aber-cs!pcg Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk