Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!mips!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!seal.cis.ohio-state.edu!ogden From: ogden@seal.cis.ohio-state.edu (William F Ogden) Newsgroups: comp.lang.eiffel Subject: Re: Reference Semantics Message-ID: <1991Jun21.230806.16183@cis.ohio-state.edu> Date: 21 Jun 91 23:08:06 GMT References: <1991Jun11.223305.16439@m.cs.uiuc.edu> <133611@tut.cis.ohio-state.edu> <1991Jun20.003529.27557@syacus.acus.oz.au> Sender: news@cis.ohio-state.edu (NETnews ) Organization: The Ohio State University, Department of Computer and Information Science Lines: 19 In article <1991Jun20.003529.27557@syacus.acus.oz.au> ian@syacus.acus.oz.au (Ian Joyner) writes: >> ... it still seems that an object which is the target of multiple references >>is completely analogous to a label which is the target of multiple GoTo's. >Bill, I agree with most of what you are saying, but I don't think this >is the reason for considering gotos harmful. If it were then we would >also ban routines being called from multiple places. The distinction between labeled points in a program and side-effect free procedures is that any call to a procedure has the same fixed, and comparatively simple effect, which includes returning control to the point of invocation, whereas the effect of a goto to a particular label depends heavily upon the locations of other goto's to that same label. It's an issue of simplicity of semantics and of separation of concerns. I suppose (by dangerous analogy) that if the multiple references to an object couldn't be used to change its value, then references would be perfectly safe too.