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.
next prev 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).