Computer Old Farts Forum
 help / color / mirror / Atom feed
From: Paul Winalski <paul.winalski@gmail.com>
To: coff@tuhs.org
Subject: [COFF] Re: continue N. (Was: I can't drive 55...)
Date: Sat, 11 Mar 2023 10:42:51 -0500	[thread overview]
Message-ID: <CABH=_VQiYKJgLBKrYRm0zkDQyUytbOPhhqejfAkvtPUMF_p6zw@mail.gmail.com> (raw)
In-Reply-To: <20230311112508.7306220145@orac.inputplus.co.uk>

Regarding the general subject of using GOTOs:

The first computer on which I did hands-on programming was an IBM
S/360 model 25.  It had 32K of memory available for user
programs--that's both instructions and data.  It executed code at
about a 30 KIPS (yes--KILO instructions/second) rate.  When you're
programming on a machine that is that slow and with that limited an
address space, every instruction counts.  You couldn't afford either
the space or the time to execute conditional tests just to avoid a
GOTO.

Programming using GOTOs doesn't necessarily mean you're writing rat's
nest or spaghetti code.  Yes, you can make a mess using GOTOs, and
perhaps messy code is easier when GOTOs are allowed, but structured
programming just for its own sake can lead to convoluted and messy
program structure as well.  What was rat's nest control flow with
GOTOs can turn into rat's nest data flow of state variables.

It's also worth noting that one of the main functions of a modern
optimizing compiler is to take your nice, structured program and put
all those rat's nest GOTOs (unconditional branch instructions) back so
the thing will execute more quickly.

-Paul W.

  reply	other threads:[~2023-03-11 15:43 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20230309230130.q4I-f%steffen@sdaoden.eu>
     [not found] ` <RHglcvrCs_xHL1NWcH8pkN1l-IQKszfwYFc8sXRTQRRjGa-7kVJWj-OMzOmWkR89xFwEIiWfoLoAAEHkKF8etYwLR3aGRj9VuwO_MhYbz3s=@protonmail.com>
     [not found]   ` <CANCZdfpj_uBkH=hih2Kv+YwTQ-eHOzqgDUJ_+P8a4chOHu=cLQ@mail.gmail.com>
     [not found]     ` <alpine.BSF.2.21.9999.2303101657460.4881@aneurin.horsfall.org>
     [not found]       ` <20230310165552.czZmL%steffen@sdaoden.eu>
2023-03-11 11:25         ` [COFF] " Ralph Corderoy
2023-03-11 15:42           ` Paul Winalski [this message]
2023-03-11 17:51           ` [COFF] " Steffen Nurpmeso

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='CABH=_VQiYKJgLBKrYRm0zkDQyUytbOPhhqejfAkvtPUMF_p6zw@mail.gmail.com' \
    --to=paul.winalski@gmail.com \
    --cc=coff@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).