From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HTML_MESSAGE,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 31855 invoked from network); 1 Dec 2020 16:24:57 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 1 Dec 2020 16:24:57 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 8056F9C225; Wed, 2 Dec 2020 02:24:50 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 026F99C204; Wed, 2 Dec 2020 02:24:32 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bsdimp-com.20150623.gappssmtp.com header.i=@bsdimp-com.20150623.gappssmtp.com header.b="oUq8sgdZ"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 051F39C204; Wed, 2 Dec 2020 02:24:31 +1000 (AEST) Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) by minnie.tuhs.org (Postfix) with ESMTPS id 225869C203 for ; Wed, 2 Dec 2020 02:24:30 +1000 (AEST) Received: by mail-qv1-f48.google.com with SMTP id 4so1089100qvh.1 for ; Tue, 01 Dec 2020 08:24:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uJGKvlBT/vxzIebhZplnLeEa91txSaBEFqHtRn56eMg=; b=oUq8sgdZM8eGcSVj7lYf9+jKZ8vqZKkkSaXHlelC9ZfQ6g4BblX4qEZ2aw4cWr8po8 PLFJptW9hn2v+iKUnV1fNi2SUfsz4esCYEAwvNlBaJXbf2A6hdAORneADWvOpMGYgGb/ HypykbTcK1Lua0Tx563ZlSZSFmCaPDiyEUcVPVga5qII+4cOwLUWMexr8aKvhHXyfwvw aGkCvU2slhFllRZiFMqwRFhsAi5MevueAgPgpKZOy4dD5HI4qHQv9QyTWcYEqrkRniLN hQqbzALbS34bfpZ7RnuFM4PSwsk3gezNqgKdxdT3HrIZdkwtwQDUV6PE3Kwd4HnvkQug /ekA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uJGKvlBT/vxzIebhZplnLeEa91txSaBEFqHtRn56eMg=; b=aQLA5wNCM3KN0gEeWCHUcnjUKUqGdt4acf8gQrYRwAcO/bnWu2i1iJx7ditafN7+HL J8PkelaYj8KQ/KzyMPJSY0bXs8KIp+bS/iQb36pocchgj5LgMMRL/6zSsDjT/XN2XeIf QbFfbaNEYXla/9nhr8grmDHX2ozzhlB38F03THSxtwPW7HYNx5YE1XK9HHGiJ7bKXeWa 7FmIfJUd+nAXOIGgcM27U/1mJZFZOA3iUQWfJsCdjC4SedS8KNxmLlTnLtmzulSDfjvS Iww/EvG6QbpyDpa60c89ELeEKAPosB2nZEU7Ss4YfKLADCpy6XlUh7JiN+H5JBdUXNfl ehQA== X-Gm-Message-State: AOAM5310Wi55+j4C4RQtGSsII5weFgfH+04w0Jm7vxuHLJegMmGsP7CK x4C2X3Rr6wNLodQHxMnh2/OnJTE3btREbpFChDRFhFZ1Zy+yiA== X-Google-Smtp-Source: ABdhPJwfyuTivlWKjOAC8lul8KYSRLRidMH53EZGJDbDPCqIP7h6dtHeHD70YelSR1fegWBykY08/0nLwx+kj5oEGeo= X-Received: by 2002:ad4:4743:: with SMTP id c3mr3825288qvx.62.1606839869002; Tue, 01 Dec 2020 08:24:29 -0800 (PST) MIME-Version: 1.0 References: <15511090.6330.1606835354160.JavaMail.root@zimbraanteil> <202012011538.0B1FcLi5023858@freefriends.org> In-Reply-To: <202012011538.0B1FcLi5023858@freefriends.org> From: Warner Losh Date: Tue, 1 Dec 2020 09:24:17 -0700 Message-ID: To: Arnold Robbins Content-Type: multipart/alternative; boundary="0000000000009a6f6505b5698fbe" Subject: Re: [TUHS] The UNIX Command Language (1976) X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: TUHS main list Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --0000000000009a6f6505b5698fbe Content-Type: text/plain; charset="UTF-8" On Tue, Dec 1, 2020 at 8:39 AM 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. > This is true for simple flow control. However, when you had to break out of multiple levels, or continue not the inner loop, but the middle loop, the use of extra booleans sure made the code less understandable than a 'goto' a label that stood in for that purpose... This was something that wasn't well understood by language designers, and even today C and C++ neither have good flow control beyond the basics. Even though both break and continue could take an optional count without breaking old code.... Warner --0000000000009a6f6505b5698fbe Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
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.

=
This is true for simple flow control. However, when you had to b= reak out of multiple levels, or continue not the inner loop, but the middle= loop, the use of extra booleans sure made the code less understandable tha= n a 'goto' a label=C2=A0that stood in for that purpose... This was = something that wasn't well understood by language designers, and even t= oday C and C++ neither have good flow control beyond the basics. Even thoug= h both break and continue could take an optional count without breaking old= code....

Warner
--0000000000009a6f6505b5698fbe--