Infocom on PDP-11
Allison
ajp166 at bellatlantic.net
Sun May 8 20:29:27 CDT 2005
>
>Subject: Re: Infocom on PDP-11
> From: Paul Koning <pkoning at equallogic.com>
> Date: Sun, 08 May 2005 19:10:08 -0400
> To: cctalk at classiccmp.org
> Cc:
> woodelf> The lack of local variables makes C very dificult.
>
>Huh?
That is really just convention. I can't see why it's relevent.
>You're confusing the lack of a hardware stack with the lack of local
>variables. They are not at all related.
Correct. But a stack makes some forms of programming easier.
>The IBM 360/370 series doesn't have a stack, and some of its
>restrictions are vaguely PDP-8 like. Nevertheless, GCC supports C
>(and C++) quite nicely on those machines.
IBM360 like a PDP-8???? Explain please.
>For that matter, Algol had local variables long before C was invented,
>and as you pointed out, there's an Algol for the PDP-8. (Then again,
>that's not a true compiler -- it compiles to an intermediate form that
>looks very much like a subset of the Burroughs 5500 instruction set.)
Using an IL was a way of making the complier easier I'd guess.
Compiler deign has become more sophisticated since.
>And Unix originally appeared on the PDP-7, which you can describe
>quite reasonably as an 18-bit superset of the PDP-8. (That's
>historically nonsense, but as a description it fits.)
In many ways it's pretty close. PDP-8 and PDP-7 had more
similar than different. Same for The PDP-1 and 5 that preceded both.
The PDP6 and 11 were departures as was VAX. The departures were
PDP-6,11 and VAX are very CISC in the vax case, to the extreme.
>Did C exist
>back then, or did that wait until Unix was ported to the PDP-11? I
>don't know.
NO, PDP-11 was the first occurance for C. After that it was
ported to Honeywell6000 and the Interdata 8/32 and even the
IBM System/370. The native language for unix on PDP-7 was
B and it's influence was from BCPL. The introduction of PDP-11
was early in the life of the machine to Bell Labs and K&R were
quick to take the bare iron and endevor to put all their previous
work on the -11 to make it useful.
A lot of the register,
local variable and addressing conventions directly reflect the
PDP-11 hardware, instruction set and native addressing modes
under C.
>Finally, CDC 6000s don't have a stack either, but the first Pascal
>compiler ran on that machine. Implementing a stack on a non-stack
>machine (or non-stack language like Fortran-II) is a nice elementary
>Exercise for the Student.
Be very careful what you call a stack or not. The PDP-8 (Straight 8)
has no hardware stack but, it has autoindex registers that are very handy
for stack implmentation. It's also not hard to store a return address
elsewhere to implement subroutine recursion. Later PDP-8a and the 6120
chip versions had a real hardware stack added. The stacks were
implemented using IOTs so it was possible to add them to any -8. The
lack of a return stack doesn't mean there isn't a set of addressing
modes to implement a software stack from all the minis and micros
I've seen.
Allison
More information about the cctalk
mailing list