The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: scj@yaccman.com
To: arnold@skeeve.com
Cc: tuhs@minnie.tuhs.org
Subject: Re: [TUHS] The UNIX Command Language (1976)
Date: Sat, 12 Dec 2020 11:50:50 -0800	[thread overview]
Message-ID: <5fde7febb4ac642817c1e612514ffd8d@yaccman.com> (raw)
In-Reply-To: <202012011639.0B1GdjcD031722@freefriends.org>

When I wrote yacc, my first thought was to use goto's when implementing 
the finite state machine that is the heart of the parser.  That's how 
FSM's work! I got the code written, but the C compiler complained and 
wouldn't compile.  It turned out that, while goto was implemented in C, 
you could only have 10 of them!  So I had to use a switch statement.

I also recently came upon one of my first C programs -- I wrote a "go 
fish" game for my son as a practice in using the language.  Reading the 
code was most instructive:
    1.  I had used FOUR gotos!   I can't remember the last time I wrote a 
goto...
    2.  The program had a bug -- char being used as an int.  Gave an 
advantage to the player.
    3.  The game was surprisingly hard to beat.  I had to add a "dumb me 
down" flag because my kids never won.

I think the game was distributed in some of the early releases.  At one 
point, at a conference, the speaker accused the game of cheating!  The 
game was just very good at remembering that if the player had asked it 
for a 6, and then it drew a 6 later, it would ask the player for 6 
again.




On 2020-12-01 08:39, arnold@skeeve.com wrote:
>> On Tue, Dec 1, 2020 at 8:39 AM <arnold@skeeve.com> wrote:
>> > It was recognized that goto was not necessary if one had proper control
>> > structures in a language (if/else, while), and that code with no (or
>> > minimal) gotos was easier to read and understand.

  parent reply	other threads:[~2020-12-12 20:07 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-30  3:10 Joachim via TUHS
2020-11-30  8:30 ` Thomas Paulsen
2020-11-30 13:36 ` Brantley Coile
2020-11-30 15:12   ` Tom Ivar Helbekkmo via TUHS
2020-11-30 15:52 ` Clem Cole
2020-11-30 16:25   ` Dan Cross
2020-11-30 16:38     ` Warner Losh
2020-11-30 16:41       ` Dan Cross
2020-11-30 16:37   ` Larry McVoy
2020-11-30 16:54     ` Clem Cole
2020-11-30 18:13       ` Theodore Y. Ts'o
2020-11-30 18:25       ` John Cowan
2020-11-30 18:37         ` Clem Cole
2020-11-30 20:11           ` arnold
2020-11-30 21:49             ` Will Senn
2020-12-01  2:55             ` Jon Steinhart
2020-11-30 18:46         ` Nemo Nusquam
2021-02-10 20:48       ` [TUHS] troff was not so widely usable (was: The UNIX Command Language (1976)) Greg A. Woods
2021-02-10 21:44         ` Larry McVoy
2021-02-10 22:05         ` Clem Cole
2021-02-11 21:58           ` Greg A. Woods
2021-02-12  5:22             ` George Michaelson
2021-02-12 22:13             ` Dave Horsfall
2021-02-12 22:18               ` Ron Natalie
2021-02-10 22:36         ` Jon Steinhart
2021-02-10 23:05           ` George Michaelson
2021-02-11  0:27             ` Ron Natalie
2021-02-11  0:36               ` Larry McVoy
2021-02-11  1:53               ` Clem Cole
2021-02-11  1:59                 ` Richard Salz
2021-02-11  2:04                   ` George Michaelson
2021-02-11  2:44                     ` Richard Salz
2021-02-11  3:02                       ` Steve Nickolas
2021-02-11  4:07                         ` Toby Thain
2021-02-11 16:55                       ` Ron Natalie
2021-02-11 20:27                         ` John Cowan
2021-02-11  2:30                 ` [TUHS] troff was not so widely usable Mary Ann Horton
2021-02-11  2:52                   ` Larry McVoy
2021-02-11  6:42                     ` Andrew Hume
2021-02-11  7:12                       ` Rob Pike
2021-02-11 13:06                         ` John Gilmore
2021-02-11 17:34                           ` Jon Forrest
2021-02-11 18:09                             ` John Cowan
2021-02-11 18:43                               ` Rich Morin
2020-12-01  3:59 ` [TUHS] The UNIX Command Language (1976) jason-tuhs
2020-12-01  4:03   ` Jon Steinhart
2020-12-01  9:27   ` Steve Nickolas
2020-12-01 15:09   ` Jim Capp
2020-12-01 15:35     ` Toby Thain
2020-12-01 15:38     ` arnold
2020-12-01 16:24       ` Warner Losh
2020-12-01 16:39         ` arnold
2020-12-01 20:13           ` Rob Pike
2020-12-02  7:08             ` arnold
2020-12-02  7:29               ` Rob Pike
2020-12-01 20:20           ` Steffen Nurpmeso
2020-12-01 20:39             ` Bakul Shah
2020-12-01 21:24               ` Dan Cross
2020-12-01 23:44                 ` John Cowan
2020-12-12 19:50           ` scj [this message]
2020-12-01 16:47         ` Larry McVoy
2020-12-01 20:13     ` Dave Horsfall
2020-12-01 20:49       ` John Cowan
2020-12-01 16:04 ` Tyler Adams
     [not found] <CAMP=X_mO9oawUpHGOvgVtwVTgcmvdXAc5vrE_+s3d2NsH+1HgA@mail.gmail.com>
2020-12-01  0:00 ` Joachim via TUHS
2020-12-01  0:21   ` Dave Horsfall
2020-12-01  2:23     ` Larry McVoy
2020-12-01  3:13 Norman Wilson
2020-12-02  0:31 ` George Michaelson
2020-12-02  1:06   ` Adam Thornton
2020-12-02 17:02     ` John Cowan
     [not found] <CAKH6PiWA2uN4m0AGp7VRJTQ6XXDLJQweHoHjx2wN=zQYs1onpA@mail.gmail.com>
2020-12-03 20:31 ` M Douglas McIlroy
2020-12-03 20:37   ` Niklas Karlsson
2020-12-03 20:43     ` Larry McVoy
2020-12-03 20:56       ` Ralph Corderoy
2020-12-03 21:01       ` Ben Walton
2020-12-03 21:12       ` Clem Cole
2020-12-04  0:29       ` Dave Horsfall
2020-12-04  0:43         ` Rob Pike
2020-12-04  0:48           ` Larry McVoy
2020-12-04  1:25           ` Dan Cross
2020-12-04  9:27             ` arnold
2020-12-04 11:33               ` Andy Kosela
2020-12-04 13:14                 ` Tyler Adams
2020-12-04 13:17                   ` Niklas Karlsson
2020-12-04 13:22                     ` Tyler Adams
2020-12-04 13:25                       ` Niklas Karlsson
2020-12-04  0:45         ` George Michaelson
2020-12-04  1:10         ` Bakul Shah
2020-12-04  1:17           ` George Michaelson
2020-12-03 20:51     ` M Douglas McIlroy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5fde7febb4ac642817c1e612514ffd8d@yaccman.com \
    --to=scj@yaccman.com \
    --cc=arnold@skeeve.com \
    --cc=tuhs@minnie.tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).