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, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 6144 invoked from network); 17 Dec 2020 14:22:20 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 17 Dec 2020 14:22:20 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 02CDF9C841; Fri, 18 Dec 2020 00:22:18 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id BB5AC9C7BB; Fri, 18 Dec 2020 00:21:36 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=dartmouth.edu header.i=@dartmouth.edu header.b="i7yS5GN8"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 0405F9C7BB; Fri, 18 Dec 2020 00:21:34 +1000 (AEST) Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by minnie.tuhs.org (Postfix) with ESMTPS id 05BBE9C7B5 for ; Fri, 18 Dec 2020 00:21:32 +1000 (AEST) Received: by mail-wr1-f51.google.com with SMTP id d26so13540322wrb.12 for ; Thu, 17 Dec 2020 06:21:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dartmouth.edu; s=google1; h=mime-version:from:date:message-id:subject:to; bh=2FwRmFIsXy4KrAkzJ7Gor2HXOtKJXjry2I5Zmu89bfY=; b=i7yS5GN8Rw0d1X7u8zpB8bTYOQmGL3Wx4UnbijNVF1Wy07jIRcuYRTZ4KPwSO0gK+6 veJI6xkcd47DVYF4TEyzQLsVfAVb5JzEDumDYbLizhBrdUrtEo1ydSHg1Mjilhp6U8in Nwum3BELNd/la8gF9tY8Pf1uBRWwtSiCFw+yWvvh+5rWqzlACan7UWQst353R0sX3v73 zQVtv32J/yuKRpz8PE6/tK5jh7E+u/L35b3tJEaCdKtvHMPNu9Pc6t9XziVGVpKjYA1g Oop0QXNnUU85hsXjyxerRdZu24SNo3qE5Fe+4EJKuzBun4sfa/dlBjYwjXsdOqe1ijNr gw1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=2FwRmFIsXy4KrAkzJ7Gor2HXOtKJXjry2I5Zmu89bfY=; b=nmX+ampS0GGTxGe1f0hz0TV/geZZ7oDcReziDH6mGoFJCsY+MV0vo1o9JptxCCLgKs kcmJmuJw2394+UsxgC3SCozAJYpb0MtB5emKWuP/QlvHfF9DorucR/VA23Ue4qBznlau hUIUChvrzPY5Pw4q7vpyeNgzv2kxumJ2xkCtgTWt4DgykmKxwYVv8w3oZ9R7Fx0ZXZG3 r0JrLlTLqZg0inrMkP0VYT5L0ln49m9w2OUQBaHJKYsNt/SnZ4flXrUByYcDSoCg+VkS lvp1VSLU7lb+jfSoKQa4cw7cmlLvH4fLIg8RfX6+9A8D8wIAXzgVW5oH6fksZUIUYwQR CGoA== X-Gm-Message-State: AOAM530e+Kz5mHxeQ+cMx84ieFcvXl9lvVIZfp8aQKZCZmgldV+lZBVC WvcB32spn2c6cSm8PYxvlG5459pvtBVUVonGMHSnPrm7cvSt4g== X-Google-Smtp-Source: ABdhPJwhyCR4RzQQ839yijD+E3fbhnU8n4ckfUqmPb8VPdQ14PCzH6k/3OCylmacoTetQGE4kKn4mY/WMz8OUSXcbMU= X-Received: by 2002:a05:6000:368:: with SMTP id f8mr33085451wrf.150.1608214890341; Thu, 17 Dec 2020 06:21:30 -0800 (PST) MIME-Version: 1.0 From: M Douglas McIlroy Date: Thu, 17 Dec 2020 09:21:14 -0500 Message-ID: To: tuhs@tuhs.org, cowan@ccil.org Content-Type: text/plain; charset="UTF-8" Subject: [TUHS] Algol 68 and Unix (was cron and at ...) 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: , Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" > Sometimes I wonder what would have happened if A68 had become the medium-level language of Unix My knowledge of A68 comes from reading the official definition back in the day. It took effort to see the clarity of the design through the fog of the description. Until more accessible descriptions came along (which I admit to not having seen) it would have been a big barrier to acceptance. A68 was very much in the air (though not much on the ground) in the early days of Unix, as was PL/I. Although we had implemented and used PL/I for Multics, it was never considered for Unix due to Its size and the rise of other attractive languages during the 6-year gestation of Multics. BCPL had the most influence, particularly in its clever identity a[i] = i [a] = *(a+i).It was OK to write 2[x], which served to implement structs like this: field=2; field[x]=3. (Actually the BCPL indirection operator was not *. Dennis borrowed the more perspicuous *from the SAP assembler for IBM 700-series machines.) >From Algol 68 Dennis borrowed addition operators like +=, though at first he unwisely reversed their spelling, underestimating the inherent hazard of a=-b. He rejected A68's automatic dereferencing as too inflexible. He considered whether semicolons should be separators as in Algol, or terminators as in PL/I. (Separators are more convenient for macro substitution, but macros were not in the original design.) He also considered making statements and expressions mutually recursive as in A68. My recollection is that his choices were finally based on a guess about user acceptance--how many radical innovations would prospective users buy into. Perhaps Ken would have more to say about this, I tried to persuade Dennis to provide simultaneous assignments like a,b = b,a, In the end, the comma operator got hijacked for a partial realization of embedded statements.(We could still get parallel assignment by, interpreting the existing {a,b,c} syntax as an lvalue thus: {a,b,c}={b,c,a}.) Then came Steve Bourne, with real experience in A68. Its influence on the shell, including the story of do...done, has often been told. It shows up most vividly in the condition part of if and while statements. Doug