On Sat, Mar 14, 2020 at 11:36 AM Robert Armstrong <bob at jfcl.com> wrote:
I remember using a C compiler under TOPS-10, but
that was far away and
very long ago. Can anybody tell me if my memory is bad, or did that really
exist? Was it a DEC product or a DECUS thing?
Thanks
Bob
There are several, I have personally used a couple of them in the past.
The original one is the Snyder Compiler from MIT for ITS (his 1973 MIT MS
thesis is here: MAC-TR-149.pdf
<https://github.com/PDP-10/Snyder-C-compiler/blob/master/MAC-TR-149.pdf> )
the sources are available,
https://github.com/PDP-10/Snyder-C-compiler
This is work he did originally at BTL under Dennis Ritchie and Steve
Johnson's tutelage -- it precedes the Johnson compiler (PCC). This is
very early in C development, there may be a version of Lesk's Portable I/O
library in it (I've forgotten), but Dennis has not even started to think
about stdio when Alan wrote it, much less more modern C ideas like unions
and much of what he describes in K&R. The language that it compiles is
basically similar to UNIX 4th or 5th Edition with the assumptions being
similar to the 36-bit compiler Steve had written for the Honeywell machine
at the time.
IIRC this compiler was originally for ITS, but we had running on TOPS-10 at
CMU at some point in the mid/late 1970s. I probably have a copy somewhere
on an old PDP-10 backup tape.
Sometime between 81-85, Ken Harrenstien of SRI took the Stanford WAITS C
Compiler from Ken Chen (called KCC) and updated it to be more modern.
IIRC the Harrenstein compiler actually fully supports the original ANSI C
definition. The ASCII doc files for it can be found here
http://ftp.math.utah.edu/pub/kcc/ and I suspect the compiler itself can be
found by hunting around the Internet. I personally never used it because I
had long ago stopped working with PDP-10's by the time Ken created it,
although I know a number of my PDP-10 friends said it works/worked well.
Chen's version that Harrenstien started with supported a more modern
definition of the language than Snyder, and IIRC correctly was a little
better integrated into the traditional PDP-10 I/O - *i.e.* supported a
number of JSYS's directly.
I know of two others, my old friend the late Jay Lepreau of Utah took the
VAX Berkeley updated version of the Johnson compiler (PCC) and moved it to
the PDP-10/20 at some point in the late 1970s/early 1980s. This version
matched K&R and seems to have somewhat replaced the Snyder and Chen
compilers as you could move things from V7 PDP-11's to the 10s reasonably
easily. As best I can tell, the Lepreau compiler was popular (particularly
on TOPS-20) until the Harrenstien version of KCC came about. I suspect
you can dig it up if you have some patience, although, at this point, I
would probably look for Harenstien's KCC.
There was at least one other I have heard about called the Sargasso C
Compiler, but I know nothing about it. Search is your friend, check out:
https://groups.google.com/forum/#!topic/alt.sys.pdp10/gc2avXfEJMg
I have also heard that someone retargeted a version of gcc, but I have not
idea how well that is maintained since most progress for gcc moving forward
has been driven by support for modern architectures.