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
ᐧ
ᐧ