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_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,HTML_FONT_LOW_CONTRAST,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 6ECC82618E for ; Wed, 8 May 2024 17:52:02 +0200 (CEST) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id DF156432C1; Thu, 9 May 2024 01:51:55 +1000 (AEST) Received: from mail-vk1-xa31.google.com (mail-vk1-xa31.google.com [IPv6:2607:f8b0:4864:20::a31]) by minnie.tuhs.org (Postfix) with ESMTPS id 21FEB416EC for ; Thu, 9 May 2024 01:51:49 +1000 (AEST) Received: by mail-vk1-xa31.google.com with SMTP id 71dfb90a1353d-4df3da90b6cso1152637e0c.2 for ; Wed, 08 May 2024 08:51:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ccc.com; s=google; t=1715183508; x=1715788308; darn=tuhs.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=3OoPabGMtxdpoIK298E9ZUGGuj9fTlSOsdlN9eylHc8=; b=asb1uFbgfmO/vzzeEWGCFDWjOFN3RffT4an+OpBiTnx6xGoCcrTwBiz7RByG4hHFEV 23lHE/ReFHdt2flN1iVWjLO0HXW6qfZXuHJfOc1Fp+xgp1/cSzOGSlW1WOlhJBrAHQ7L 1a1k00GJ+FY9SCK1EGTevgUq4cAPe5t5TXuiM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715183508; x=1715788308; h=cc: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=3OoPabGMtxdpoIK298E9ZUGGuj9fTlSOsdlN9eylHc8=; b=vxZCjEUxiiLV+qgnlCbWYTynk7GPq+Fc7MflQV04QWhfogxm3IrqKrvRHJ4uVGuHyz 1lwtb1rNiLlmjsE+nA1LM8A/PC6N5L+ny63BSJhfDMN28fCzwdNJVrO6jZeZnzg5HbvA 0ULyipu3IRfRWQwO2YaGWVzkO2KaDNhCopVWopsQdMwsu3+gPgxBvAPgje+UPT5iYq7g TzV3fMaK4446uzacw6BRvkb7sPdLtmgdP/PadeQPKUxiR8EqpWKHjQ7F958U4jDGlmXo 6aZqBXhsRpdDpSALfUPDpA+kNZNOOj4iyHskV3GHKXtoOS1vQbpWnJJLNk9Tl8/UeCmD tWHQ== X-Gm-Message-State: AOJu0Yy4Tg6qTfBYh1pAQk24GMwVEzdDoT0uw4slAnJB3+9mOJ3w6Y+0 YQNeG+n17SYJMBvGQHpVW2DNtVl30Z7spqHsiO3NBhcZjZrwxujI2MyLh66McckXSBxFSMbbVe0 TDl66jugZi8mmrqDW20M5VUWlqhB5BG84ww1RkxHGyE5Fedg= X-Google-Smtp-Source: AGHT+IHMLk+1RlhJlQAVdGjO5kDM+SK2zuc7EVGsfzvTa4Av64mPjF8yoquP+pialbijr0ZhDWDpAeglbp6pO9R4/JE= X-Received: by 2002:a05:6122:2a50:b0:4d8:74cb:e3c2 with SMTP id 71dfb90a1353d-4df692b640amr3083024e0c.9.1715183507689; Wed, 08 May 2024 08:51:47 -0700 (PDT) MIME-Version: 1.0 References: <18efd14f-4da6-4771-ad6a-901c6cb6105d@planet.nl> <57a37626-728c-4f34-b08b-a4f521f1db03@planet.nl> In-Reply-To: <57a37626-728c-4f34-b08b-a4f521f1db03@planet.nl> From: Clem Cole Date: Wed, 8 May 2024 11:51:11 -0400 Message-ID: To: Paul Ruizendaal Content-Type: multipart/alternative; boundary="000000000000b370ee0617f347ff" Message-ID-Hash: 7FTOZLWLIZ5AGME2CDAHCIDUQUSVCDQT X-Message-ID-Hash: 7FTOZLWLIZ5AGME2CDAHCIDUQUSVCDQT X-MailFrom: clemc@ccc.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 CC: tuhs@tuhs.org X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: On the uniqueness of DMR's C compiler List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --000000000000b370ee0617f347ff Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I agree with Rob. I fear the OP might have more limited experience with what was available at the time and how it was developed. The following is undoubtedly incomplete. It is what I could remember quickly to answer the question of real compilers for the PDP-11. As others have pointed out, the original DEC PDP-11 FTN, like the original PDP-6 and PDP-8, was based on threaded DEC F4 technology. After introducing the PDP-10, the 36-bit compiler team at DEC started a project to rewrite FORTRAN (in BLISS) as a true compiler. As was reminded at lunch last week (I still eat weekly with many of the DEC TLG folks), DEC had two groups -- a development team and a support team. I think some of the external confusion comes from both teams releasing products to the world, and the outside world did not always understand the differences. So, when I say the "compiler" group, I generally refer to the former - although many people started in the latter and eventually became part of the former. They key point here is that F4 (which was from the support folks), lived for a while in parallel with stuff coming from what eventually would become TLG [Technical Languages (and tools) Group]. The primary DEC-supported technical languages were all written in BLISS-11 and cross-compiled from the PDP-10 (originally). However, they could run in 11/40 class (shared I/D) space machines. Remember, DEC operating systems could do overlays - although there were probably some differences with what could be generated [I'd need to pull the old RT11 manuals for each]. Yes, FORTRAN was the primary technical language, but DEC's TLG supported other languages for the PDP-11 from COBOL to BASIC, and 3rd parties filled out the available suite. Probably the #1 3rd party, PDP-11 compiler, is (was) the OMSI Pascal compiler (which generated direct PDP-11 code) for all classes of PDP-11s [the OP referred to the Pascal that generated P4 code and ran interpreter for same. The UCSD Pascal worked this way, but I never saw anything other than students use it for teaching, while the OMSI compiler was a force for PDP-11 programmers, and you saw it in many PDP-11 shops - including some I worked]. I'm pretty sure the RT11 and RSX11 versions of this can be easily found in the wild, but I have not looked for the UNIX version (note that there was one). Note - from a SW marketplace for PDP-11s, the money was on the DEC operating systems, not UNIX. So, there was little incentive to move those tools, which I think is why the OP may not have experienced them. Another important political thing to consider is that TLG did their development on PDP-10s and later Vaxen inside DEC. Since everything was written in BLISS and DEC marketing 100% missed/sunk that boat, the concept of self-hosting the compiler was not taken seriously (ISTR: there was a project to make it self-host on RSX, but it was abandoned since customers were not beating DEC's door down for BLISS on many PDP-11 systems). Besides DMR's compiler for the PDP-11. Steve Johnson developed PCC and later PCC2. Both ran on all flavors of PDP-11s, although I believe since the lack of support for overlays in the research UNIX editions limited the compilers and ISTR, there were both 11/40 and 11/45 class binaries with different-sized tables. On our Unix boxes, we also had a PDP-11 Pascal compiler from Free University in Europe (VU) - I don't remember much about it nor can I find it in a quick search of my currently online stuff. ISTR That one may have been 11/45 class - we had it on the TekLabs 11/70 and I don't remember having in on any of our 40-class systems. The Whitesmith's C has been mentioned. That compiler ran on all the PDP-11 UNIXs of the day, plus its native Idris, as well as the DEC OSs. It did not use an interpreter per se, but instead compiled to something Plauger called 'ANAT" - a natural assembler. He then ran an optimizer over this output and his final pass converted from ANAT code to the PDP-11 (or Z80 as it turns out). I argue that ANAT was what we now think of in modern compilers as the IL, but others might argue differently. We ran it on our RT-11 systems, although ISTR came with the UNIX version, so we had it on the 11/70, too. That may have been because we used it to cross-compile for the Z80. Tannabaum and the team have the Amsterdam compiler toolkit. This had front ends for C and Pascal and could generate code for PDP-11s and several other microprocessors. I do not know how widely it was used for the PDP11s. Per Brinch, Hansen also implemented Parallel Pascal and his own OS for the 40-class PDP-11s. He talks about this in his book Pascal on Small Systems. Holt and team wrote Concurrent Euclid and TUNIS for the 40-class machines. Wirth released a Modula for the 11, although we mostly ran it on the 68000s and a Lilith system. IIRC, Mike Malcom and the team built a true B compiler so they could develop Thoth. As the 11/40 was one of the original Thoth target systems, I would have expected that to exist, but I have never used it. As was mentioned before, there was BCPL for the PDP-11. I believe that a BCPL compiler can even be found on one of the USENIX tapes in the TUHS archives, but I have not looked. Finally, ISTR, in the mid-late 1970s one of the Universities in Europe (??Edinburgh, maybe??), developed and released an Algol flavor for the PDP-11, but I never used it. Again, you might want to check the TUHS archives. In my own case, while I had used Algol on the PDP-8s and 10s, plus the IBM systems, and by then Pascal had become the hot alternative language and was close enough I never had a desire/need for it. Plus since there were a number of Pascal implementations available for 11s and no one in Teklabs was asking for it, I never chased it down. To quote Tom Lehrer .. "*These are the only ones that the news has come to Huvrd. There may be many others ..*." Clem =E1=90=A7 =E1=90=A7 --000000000000b370ee0617f347ff Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I agree with Rob. I fear the OP might have more limited= experience with what was available at the time and how it was developed. T= he following is undoubtedly incomplete. It is what I could remember=C2=A0qu= ickly to answer the question of real compilers for the PDP-11.

=
As others have pointed out, the original DEC PDP-11 FTN, like the = original PDP-6 and PDP-8, was based on threaded DEC F4 technology.=C2=A0 Af= ter introducing the PDP-10, the 36-bit compiler team at DEC started a proje= ct to rewrite FORTRAN (in BLISS) as a true compiler.=C2=A0 As was reminded = at lunch last week (I still eat weekly with many of the DEC TLG folks), DEC= had two groups -- a development team and a support team.=C2=A0 =C2=A0 I th= ink some of the external confusion comes from both teams releasing products= to=C2=A0the world, and the outside world did not always understand the dif= ferences.=C2=A0So, w= hen I say the "compiler" group, I generally refer to the former -= although many people started in the latter and eventually became part of t= he former. They key point here is that F4 (which was from the support folks= ), lived for a while in parallel with stuff coming from what eventually wou= ld become TLG [Technical Languages (and tools) Group].

The p= rimary DEC-supported technical languages were all written in BLISS-11 and c= ross-compiled from the PDP-10 (originally).=C2=A0 However, they could run i= n 11/40 class (shared I/D) space machines. Remember, DEC operating systems = could do overlays - although there were probably some differences with what= could be generated [I'd need to pull the old RT11 manuals for each]. Y= es, FORTRAN was the primary technical language, but DEC's TLG supported= =C2=A0other languages for the PDP-11 from COBOL to BASIC, and 3rd parties f= illed out the available suite.

Probably the #1 3rd par= ty, PDP-11 compiler, is (was) the OMSI Pascal compiler (which generated dir= ect PDP-11 code) for all classes of PDP-11s [the OP referred to the Pascal = that generated P4 code and ran interpreter for same.=C2=A0 The UCSD Pascal = worked this way, but I never saw anything other than students use it for te= aching, while the OMSI compiler was a force for PDP-11 programmers, and you= saw it in many PDP-11 shops - including some I worked].=C2=A0 I'm pret= ty sure the RT11 and=C2=A0 RSX11 versions of this can be easily found in th= e wild, but I have not looked for the UNIX version (note that there was one= ).

Note - from a SW marketplace for PDP-11s, the money= was on the DEC operating systems, not UNIX.=C2=A0 So, there was little inc= entive to move those tools, which I think is why the OP may not have experi= enced them.=C2=A0 Another important political thing to consider is that TLG= did their development on PDP-10s and later Vaxen inside DEC.=C2=A0 =C2=A0S= ince everything was written in BLISS and DEC marketing 100% missed/sunk tha= t boat, the concept of self-hosting the compiler was not taken seriously (I= STR: there was a project to make it self-host on RSX, but it was abandoned = since customers were not beating DEC's door down for BLISS on many PDP-= 11 systems).

Besides DMR's compiler for the PDP-11= .=C2=A0 Steve Johnson developed PCC and later PCC2.=C2=A0 Both ran on all f= lavors of PDP-11s, although I believe since the lack of support for overlay= s in the research UNIX editions limited the compilers and ISTR, there were = both 11/40 and 11/45 class binaries with different-sized tables.
On our Unix boxes, we also had a PDP-11 Pascal compiler from Fre= e University in Europe (VU) - I don't remember much about it nor can I = find it in a quick search of my currently online stuff. ISTR That one may h= ave been 11/45 class - we had it on the TekLabs 11/70 and I don't remem= ber having in on any of our 40-class systems.

The Whi= tesmith's=C2=A0C has been mentioned.=C2=A0 That compiler ran on all the= PDP-11 UNIXs of the day, plus its native Idris, as well as the DEC OSs.=C2= =A0 It did not use an interpreter per se, but instead compiled to something= Plauger called 'ANAT" - a natural assembler.=C2=A0 He then ran an= optimizer over this output and his final pass converted from ANAT code to = the PDP-11 (or Z80 as it turns out).=C2=A0 I argue that ANAT was what we no= w think of in modern compilers as the IL, but others might argue differentl= y. We ran it on our RT-11 systems, although ISTR came with the UNIX versio= n, so we had it on the 11/70, too. That may have been because we used it to= cross-compile for the Z80.

Tannabaum and the team hav= e the Amsterdam compiler toolkit. This had front ends for C and Pascal and = could generate code for PDP-11s and several other microprocessors. I do not= know how widely it was used for=C2=A0the PDP11s.

Per = Brinch, Hansen also implemented Parallel Pascal and his own OS for the 40-c= lass PDP-11s. He talks about this in his book Pascal on Small Systems.=C2= =A0

Holt and team wrote Concurrent Euclid and TUNIS fo= r the 40-class machines.

Wirth released a Modula for t= he 11, although we mostly ran it on the 68000s and a Lilith system.

IIRC, Mike Malcom and the team built a true B compiler so the= y could develop Thoth.=C2=A0 =C2=A0As the 11/40 was one of the original Tho= th target systems,=C2=A0 I would have expected that to exist, but I have ne= ver used it.

As was mentioned before, there was=C2=A0 = BCPL for the PDP-11.=C2=A0 I believe that a BCPL compiler can even be found= on one of the=C2=A0 USENIX tapes in the TUHS archives, but I have not look= ed.=C2=A0=C2=A0

Finally, ISTR, in the mid-late 1970s o= ne of the Universities in Europe (??Edinburgh, maybe??), developed and rele= ased an Algol flavor for the PDP-11, but I never used it.=C2=A0 =C2=A0Again= , you might want to check the TUHS archives.=C2=A0 In my own case, while I = had used Algol on the PDP-8s and 10s, plus the IBM systems, and by then Pas= cal had become the hot alternative language and was close enough I never ha= d a desire/need for it.=C2=A0 =C2=A0Plus since there were a number of Pasca= l implementations available for 11s and no one in Teklabs was asking for it= , I never chased it down.

To quote Tom Lehrer .. "= ;These are the only ones that the news has come to Huvrd. There may be m= any others ..."

Clem


=C2=A0 =C2=A0
3D""=E1=90=A7
3D""=E1=90=A7 --000000000000b370ee0617f347ff--