From: cons116@twain.oit.umass.edu (Mike White)
Subject: Re: State machines and Goto's (was Re: Should internet support software be written in Ada?)
Date: 1995/04/07
Date: 1995-04-07T00:00:00+00:00 [thread overview]
Message-ID: <3m3i9k$a7e@nic.umass.edu> (raw)
In-Reply-To: 3lt00o$rgf@gnat.cs.nyu.edu
Robert Dewar (dewar@cs.nyu.edu) wrote:
: OK, I promised myself not to get into this silly goto discussion (having
: already gone around in it once on comp.lang.cobol).
: Here is the basic issue with finite state machines. A normal picture
: of a finite state machine is a spaghetti diagram with circles for
: states and arrows for transitions.
: Little gobs of code for the circles, and gotos for the arrows, is a very
: natural representation. it has exactly the same structure as the original
: pictorial diagram.
: For me, the case statement is just a little removed from the motivating
: diagram, so I find the goto structure clearer. I have often taken polls
: on this issue in my graduate classes, and I usually find the class divided.
The goto structure certainly reflects the FSM diagram in an intuitive
manner. However, many of us simply loathe using it - I haven't used
a goto in a program since I last used BASIC: probably 6 or 7 years ago.
It HAS been ingrained in all coursework I have had.
One possibility for making the case structure more reflective of the
machine it is based on is by having a procedure something like
GoFromStateToState (current_state, state_of_bliss)
or even a function like
current_state = GotoState (state_of_bliss)
which simply sets the value of current_state to state_of_bliss. This
does not change the fact that it is still a case structure,
but it might make the code more closely model, at least for a
maintainer, the FSM it is implementing.
[cut]
: People like simple rules. Some programmers are so incompetent that they
: can only be trusted to work under simple absolute rules. My rule is
: also simple: get rid of incompetent programmers.
This almost sounds like a typical argument against Ada from the C
people! :) (The part about sticking to the rules, not programmer
competence...)
Adhering to fairly simple rules is, IMO, essential for maintainability.
They should not be absolute, but nearly, as most problems _can_ be
solved without using tricks and without making the code particularly
contrived. As I see it, the ability to find elegant solutions while
adhering to fairly strict rules is what defines a competent programmer.
--
***************************************************************************
* Michael White * "Man is a biped without feathers." *
* cons116@titan.ucs.umass.edu * -Plato *
***************************************************************************
next prev parent reply other threads:[~1995-04-07 0:00 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
1995-03-17 0:24 Should internet support software be written in Ada? Bill Brooks
1995-03-17 8:47 ` Anthony Shipman
1995-03-19 22:06 ` David Weller
1995-03-23 15:05 ` Theodore Dennison
1995-03-24 10:26 ` Fred J. McCall
1995-03-27 9:50 ` Robb Nebbe
1995-03-27 19:43 ` State machines and Goto's (was Re: Should internet support software be written in Ada?) Robert I. Eachus
1995-03-27 23:14 ` Arthur Evans Jr
1995-03-29 0:00 ` Dan
1995-04-01 0:00 ` Mike White
1995-04-04 0:00 ` Robert Dewar
1995-04-06 0:00 ` Theodore Dennison
1995-04-06 0:00 ` Norman H. Cohen
1995-04-07 0:00 ` Robert Dewar
1995-04-07 0:00 ` Tucker Taft
1995-04-07 0:00 ` Mike White [this message]
[not found] ` <3ma7rt$smt@kaiwan009.kaiwan.com>
[not found] ` <dewar.797514490@gnat>
[not found] ` <3meunj$66u@felix.seas.gwu.edu>
1995-04-20 0:00 ` CS teachers who can't code their way outta a paper bag Richard A. O'Keefe
1995-03-27 14:24 ` Should internet support software be written in Ada? Theodore Dennison
1995-03-28 0:00 ` Robert Dewar
1995-03-28 9:32 ` Fred J. McCall
1995-03-29 0:00 ` Theodore Dennison
1995-03-29 0:00 ` Robert I. Eachus
1995-03-31 0:00 ` Theodore Dennison
1995-04-05 0:00 ` Wes Groleau
1995-04-07 0:00 ` State machines and Goto's (was Re: Should internet support software be written in Ada?) Wes Groleau
1995-04-07 0:00 ` Robert Firth
[not found] ` <D6qyv0.6Jv@nntpa.cb.att.com>
1995-04-19 0:00 ` Fergus Henderson
1995-04-19 0:00 ` Fred J. McCall
1995-04-19 0:00 ` George Haddad
1995-04-20 0:00 ` State machines and Goto's (was Re: Sho Brian Hanson
1995-04-20 0:00 ` State machines and Goto's (was Re: Should internet support software be written in Ada?) Bill Winn
1995-04-20 0:00 ` Robert Dewar
1995-04-20 0:00 ` Mark A Biggar
1995-03-22 23:08 ` Should internet support software be written in Ada? Keith Thompson
[not found] ` <dewar.798207931@gnat>
[not found] ` <cppD78ywq.B31@netcom.com>
[not found] ` <dewar.798240702@gnat>
1995-04-19 0:00 ` Problems with proofs Brian Harvey
1995-04-19 0:00 ` Robert Dewar
1995-04-20 0:00 ` Robin Rowe
1995-04-20 0:00 ` Robert Dewar
1995-04-20 0:00 ` Robert Dewar
1995-04-21 0:00 ` Robin Rowe
1995-04-21 0:00 ` Robert Dewar
1995-04-20 0:00 ` Steve Tate
1995-04-20 0:00 ` Apology to Steve Robin Rowe
1995-04-21 0:00 ` Problems with proofs Larry Kahn
1995-04-20 0:00 ` Robin Rowe
[not found] ` <3n1fsv$lgd@butch.lmsc.lockheed.com>
1995-04-20 0:00 ` Robin Rowe
1995-04-20 0:00 ` Garlington KE
[not found] ` <3mrv7h$3mq@larry.rice.edu>
[not found] ` <3msnu4$6am@kaiwan009.kaiwan.com>
[not found] ` <KUBEK.95Apr18213646@insage.gerii.insa-tlse.fr>
[not found] ` <cppD792GC.1uI@netcom.com>
1995-04-20 0:00 ` Teaching OO/C++ Philip Machanick
[not found] ` <dewar.798093453@gnat>
1995-04-20 0:00 ` What good is halting prob? Max Hailperin
[not found] ` <3me1qs$n4a@theopolis.orl.mmc.com>
[not found] ` <3mevmu$8an@felix.seas.gwu.edu>
[not found] ` <3mh75i$8eu@rational.rational.com>
[not found] ` <3mjihr$iqq@felix.seas.gwu.edu>
[not found] ` <3mp20f$80t@kaiwan009.kaiwan.com>
1995-04-20 0:00 ` Academic CS Losers? Phillip Fanous
1995-04-21 0:00 ` Bill Winn
[not found] ` <cppD75t6F.47M@netcom.com>
[not found] ` <EACHUS.95Apr17172831@spectre.mitre.org>
[not found] ` <cppD77Ex6.E77@netcom.com>
[not found] ` <3mve9b$gaj@news.cais.com>
1995-04-18 0:00 ` What good is halting prob? Jay M Martin
1995-04-19 0:00 ` Steve Tate
1995-04-20 0:00 ` Jay M Martin
1995-04-21 0:00 ` Steve Tate
1995-04-21 0:00 ` Ray Toal
[not found] ` <cppD7880n.32B@netcom.com>
1995-04-19 0:00 ` Randolph Crawford
1995-04-19 0:00 ` Robert Dewar
1995-04-20 0:00 ` Robin Rowe
1995-04-20 0:00 ` Robert Dewar
1995-04-20 0:00 ` Robin Rowe
1995-04-21 0:00 ` Brian Hanson
1995-04-21 0:00 ` sxc
[not found] ` <dewar.798172270@gnat>
[not found] ` <cppD786FM.1u9@netcom.com>
[not found] ` <dewar.798207364@gnat>
[not found] ` <cppD78xMv.49w@netcom.com>
1995-04-19 0:00 ` Robb Nebbe
[not found] ` <3n0ka7$b57@hermes.unt.edu>
[not found] ` <dewar.798232482@gnat>
1995-04-19 0:00 ` Mark A Biggar
1995-04-19 0:00 ` Robert Dewar
1995-04-19 0:00 ` Steve Tate
1995-04-19 0:00 ` Mark A Biggar
1995-04-19 0:00 ` Richard Ladd Kirkham
1995-04-19 0:00 ` Robert Dewar
1995-04-20 0:00 ` Richard Ladd Kirkham
1995-04-20 0:00 ` Robert Dewar
1995-04-21 0:00 ` Mark A Biggar
1995-04-21 0:00 ` Robert I. Eachus
1995-04-21 0:00 ` Robert Dewar
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox