From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: from minnie.tuhs.org (minnie.tuhs.org [IPv6:2600:3c01:e000:146::1]) by inbox.vuxu.org (Postfix) with ESMTP id 9421125C1F for ; Wed, 3 Apr 2024 22:44:56 +0200 (CEST) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id CAE1C426FD; Thu, 4 Apr 2024 06:44:52 +1000 (AEST) Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) by minnie.tuhs.org (Postfix) with ESMTPS id CA604426FB for ; Thu, 4 Apr 2024 06:44:41 +1000 (AEST) Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-5ce07cf1e5dso260840a12.2 for ; Wed, 03 Apr 2024 13:44:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712177081; x=1712781881; darn=tuhs.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=DNu1Ip4dKAipmszncP8bdjnNK1UCstwce8qWVMY+oKY=; b=dLl6dGADyBUHJ5KV2yB5jUKUaB103NuPs4QypnYaG5N9oAMfuqly7Ivle1u3I0299q Q4I6ahSs0HJN81WR2PDi8J2yuxKKgGojL03lLqwULE88x9drmLt7ntEuegALIo8praHr G4tUcXGjVrm0T1pJnCMmMJXBcubSyH8kF5s+6RDqoVeLgUhpdVBH+FKU8MQZAYDwg+/f P33RoA83f1EwJq22b27RakgcKH4RFJfCNC9J2ZHtWHzKi1cEe4MVN9p7FBJJEtXjRtmy 3RORtCDGp+o9HSbYrNQ+T5BuQwUIh0xnuT8TLV99i1rdVsPaCxpxm2nOLkqqafZ3F7Ea nZZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712177081; x=1712781881; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=DNu1Ip4dKAipmszncP8bdjnNK1UCstwce8qWVMY+oKY=; b=LzLUTtgNNY+F9jHL5HmG3ebEtbDgHqPElF4rSZ4xVq4NOtYL5G4xq4WPSJVip7XYf9 pSOWWlDphdkHBPnGvb8/UCvGYuoTMIe7GYJyg09bDO6w2q/i1gMNgWiqaWeynQ1cwYoH R4xrNeajTRxSLyPOY2RdYba8C6PRiPfSUYOG+PzD/wn27MnWukNp4GttG1zifXNhgAHA gbcrc5+QM8uWC0GJPPPuQ/gfKvroG+2s7QGTszqUmf9mC8wgY0+VccIToRjLrMOBpw4L qcjNHsNBaJg8L6pB2+FDBbmCpwHbHHU3/CNEOdGfDZRJTjXGmZRbv043u/Ab/P65YY6u ak4w== X-Gm-Message-State: AOJu0YxQnWWpX6NycktMGDMtocCtknoTk3lNPnMSvLTHuKtHTmYnBX2F xUTQpdjjMbb5S7CKf+Nm+ZuJUa4YYKgExC/LN5UtTAX5wDx9UwhJnz0BjFJNPrr38EB8jzhai+I IhgmChou/8BAQqmqgjphk3KvUjpG0gk7h X-Google-Smtp-Source: AGHT+IHbcV88Rgy/iPJHWcvbEihzoxiRWMtXa9lQ7sRVrxCeD8evdUF3rw8kAkxj51oIW8UAtWDq3Np/DuISLxbC0DU= X-Received: by 2002:a05:6a21:999d:b0:1a7:a3e:4765 with SMTP id ve29-20020a056a21999d00b001a70a3e4765mr1068891pzb.12.1712177080857; Wed, 03 Apr 2024 13:44:40 -0700 (PDT) MIME-Version: 1.0 References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> In-Reply-To: From: Paul Winalski Date: Wed, 3 Apr 2024 16:44:30 -0400 Message-ID: To: coff@tuhs.org Content-Type: multipart/alternative; boundary="000000000000b27d940615374ac8" Message-ID-Hash: PJEIJT3KCCGXXECNMK76PGAZKAYHYKSR X-Message-ID-Hash: PJEIJT3KCCGXXECNMK76PGAZKAYHYKSR X-MailFrom: paul.winalski@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [COFF] Re: Of PL/I List-Id: Computer Old Farts Forum Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --000000000000b27d940615374ac8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Apr 3, 2024 at 1:30=E2=80=AFPM segaloco via COFF wr= ote: > I get (friendly) flack for this from some of my coworkers, context is > we're a C# and Java(Type)Script shop. They poke fun at how I write these > languages like a C programmer but I don't ever hear anyone complaining > about the readability of my code :) > > Someone once observed that a good Fortran programmer can write Fortran in any programming language. Here's another PL/I toxic language feature. Both COBOL and Fortran were designed around the same time that Noam Conmsky was working out formal language theory and both have ill-behaved grammars. Fortran has context-dependent lexical analysis, for example. PL/I is better behaved--the grammar for its lexical analysis is a regular grammar and can be processed with a state machine. But unlike C and other more modern languages, PL/I has no reserved keywords. So you can write things such as: IF IF=3DTHEN THEN THEN =3D ELSE; Here the first IF and the second THEN are keywords. Everything else is a variable name. Our PL/I shops forbade variable names that were the same as language keywords. I suppose the designers of the PL/I language wanted to allow for the introduction of new language keywords while retaining backwards compatibility with programs that may have used the new keyword sa a variable name. -Paul W. --000000000000b27d940615374ac8 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Wed, Apr 3, 2024 at 1:30=E2=80=AFPM se= galoco via COFF <coff@tuhs.org> = wrote:
I get (friendly) flack for this from some of my coworkers, co= ntext is we're a C# and Java(Type)Script shop.=C2=A0 They poke fun at h= ow I write these languages like a C programmer but I don't ever hear an= yone complaining about the readability of my code :)

Someone once observed that a good Fortran programmer = can write Fortran in any programming language.

Her= e's another PL/I toxic language feature.=C2=A0 Both COBOL and Fortran w= ere designed around the same time that Noam Conmsky was working out formal = language theory and both have ill-behaved grammars.=C2=A0 Fortran has conte= xt-dependent lexical analysis, for example.=C2=A0 PL/I is better behaved--t= he grammar for its lexical analysis is a regular grammar and can be process= ed with a state machine.=C2=A0 But unlike C and other more modern languages= , PL/I has no reserved keywords.=C2=A0 So you can write things such as:

IF IF=3DTHEN THEN THEN =3D ELSE;

=
Here the first IF and the second THEN are keywords.=C2=A0 Everything e= lse is a variable name.=C2=A0 Our PL/I shops forbade variable names that we= re the same as language keywords.

I suppose th= e designers of the PL/I language wanted to allow for the introduction of ne= w language keywords while retaining backwards compatibility with programs t= hat may have used the new keyword sa a variable name.

<= div>-Paul W.
--000000000000b27d940615374ac8--