home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!darwin.sura.net!haven.umd.edu!mimsy!nocusuhs!yoshi
- From: yoshi@nocusuhs.nnmc.navy.mil (D M Yoshikami)
- Newsgroups: misc.writing
- Subject: Re: Semantics of "to be"
- Summary: About GOTO's -- here he goes AGAIN!!!!!!!!! :-)
- Keywords: GOTO, ISness, IZZY, Foo!
- Message-ID: <1992Oct8.124116.1424@nocusuhs.nnmc.navy.mil>
- Date: 8 Oct 92 12:41:16 GMT
- References: <1992Oct6.152841.13733@bcrka451.bnr.ca> <1992Oct7.115201.11214@nocusuhs.nnmc.navy.mil> <1992Oct7.170022.6141@bcrka451.bnr.ca>
- Organization: National Naval Medical Center
- Lines: 61
-
- In article <1992Oct7.170022.6141@bcrka451.bnr.ca> nadeau@bnr.ca (Rheal Nadeau) writes:
- >This reminds of the great "goto" debate in computer programming - it is
- >generally believed that programs written without "goto" are "better"
- >than those with. However, it is still quite possible to write very bad
- >programs without "goto", and very good ones with "goto". The most that
- >can be said is that "goto" make it easier to do sloppy programming (oh,
- >I forgot this condition, OK, I'll just "goto" over-there and . . .).
-
- This reminds me of when I was studying compiler theory. When you are
- implementing a finite automaton of some kind, when you change states,
- you do a "goto" in every sense of the word. Although structured
- programming and goto's (after IF statements) are equal in terms of
- expressing flow control, to the astute person reading the code they
- are not identical in terms of usage. The upshot of this is you can
- implement a pushdown automaton (for example), completely with
- structures, but you'd wind up simulating a GOTO in the end, just as
- much as you can implement structures with GOTO's (this is what the
- compiler does for you -- simulates your structures with Jumps in the
- machine code). Finite automata look like spaghetti code, and the best
- way to implement spaghetti code is with spaghetti code.
-
- One problem is that young programmers often do not have sufficient
- understanding or knowledge to know when it is legal to use a GOTO.
- Oddly enough, sometimes designers of computer languages do not
- recognise this either. Ada, for instance, does not really have a
- "GOTO" that is easily used, and more is the shame, because programmers
- often abuse the Ada "Exception" handler to emulate GOTO's, which
- slows things down quite a bit. [What they write are not really
- exceptions, but attempts to force Ada to "GOTO" somewhere because
- the machine's state has changed]
-
- >In the end, the key is thinking through what you want to say, then
- >finding the words that best convey that messages. (And while the
- >previous sentence uses "is", I doubt it would really be improved by
- >trying to avoid that. Or: I doubt we could really improve it by
- >trying to avoid that? :-) )
-
- Okay, let's bring this all together. Finding any old word to convey
- the message will do so -- much as lotsa-Goto's can implement something
- better off written in structures, and just as a program written in
- a highly structured language can implement a gigantic mess of Goto's
- for some kind of scanner or parser -- but finding the right words
- to do the right job that will best message is indeed the key.
-
- Although we need not necessarily agree with some of the more extremes of
- eliminating "IS" from English, much like the mistake of eliminating
- the "GOTO" entirely from computer languages, the argument about using "IS"
- much like the argument regarding the "GOTO", allows us to check if our
- diction is precise or sloppy -- in other words, did we misuse the verb
- "to be" or not?
-
- D.Y. :-)
-
- P.s. It may seem strange, but I've noticed that computer languages,
- follow the same rhetorical guidelines for usage and expression as
- natural languages such as English. Q.v. _The_Elements_of_Programming_Style_
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- D M Yoshikami :-) ;-) :-) | Internet: yoshikami@usuhsb.ucc.usuhs.nnmc.navy.mil
- +1 (301) 295-3304 | Bitnet : yoshikami@usuhsb.bitnet
- *** !!xob X*NU V METSYS T&TA eht ni renosirp dleh gnieb m`I !pleH !pleH ***
-