From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Why C++ is successful Date: 1998/08/14 Message-ID: #1/1 X-Deja-AN: 381008449 References: <6qfhri$gs7$1@nnrp1.dejanews.com> <35cb8058.645630787@news.ne.mediaone.net> <902934874.2099.0.nnrp-10.c246a717@news.demon.co.uk> X-Complaints-To: usenet@news.nyu.edu X-Trace: news.nyu.edu 903074553 18096 (None) 128.122.140.58 Organization: New York University Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-08-14T00:00:00+00:00 List-Id: Andy said <> The two obvious uses vfor gotos in Ada are 1) to get a loop "continue" mechanism 2) to write finite state machines encoding the state into the PC. Yes, some people prefer case statements for this purpose, but many people prefer the use of labels and gotos as the most obvious translation of labeled states with arrows between them. In general, the use of gotos makes sense if the resulting code is clearer and easier to maintain. THat's relatively rare, but not non-existnent, and it is quite common to run across tortured code with multiple boolean flags which can be easily simplified using a goto. For example, I find the following perfectly clear: <> for J in 1 .. N - 1 loop if D (J) > D (J + 1) then Swap (D(J), D(J + 1)); goto Sort; end if; It is a little tricky to program this without the goto and not make it less clear. Actuallky many people who try this end up with a different algorithm (hint: the above sort is cubic, it is NOT a quadratic bubble sort :-) dp