Related articles |
---|
pointer elimination in C miller@crx.ece.cmu.edu (Karen Miller) (1993-10-05) |
Re:pointer elimination in C ghiya@flo.cs.mcgill.ca (1993-10-06) |
Re: pointer elimination in C donawa@bluebeard.cs.mcgill.ca (Chris DONAWA) (1993-10-10) |
Re: pointer elimination in C doug@netcom.com (1993-10-19) |
Re: pointer elimination in C pop@dcs.gla.ac.uk (Robin Popplestone) (1993-10-22) |
Re: pointer elimination in C macrakis@osf.org (1993-10-22) |
Re: pointer elimination in C henry@zoo.toronto.edu (1993-10-22) |
Re: pointer elimination in C mcdonald@kestrel.edu (1993-10-28) |
Re: pointer elimination in C ted@crl.nmsu.edu (1993-10-29) |
Re: pointer elimination in C rbe@yrloc.ipsa.reuter.COM (1993-11-01) |
Re: pointer elimination in C mcdonald@kestrel.edu (1993-11-03) |
Re: pointer elimination in C macrakis@osf.org (1993-11-03) |
Newsgroups: | comp.compilers |
From: | henry@zoo.toronto.edu (Henry Spencer) |
Keywords: | C, history, design |
Organization: | U of Toronto Zoology |
References: | 93-10-032 93-10-096 |
Date: | Fri, 22 Oct 1993 20:14:06 GMT |
Robin Popplestone <pop@dcs.gla.ac.uk> writes:
>C was, as they would say in Congress, -very unique- in providing pointer
>arithmetic. This simply reflected the fact that good compilers had to be
>shoehorned into a tiny computer, the DEC-11, and there was a simple
>one-to-one mapping between something like *x++ and one machine
>instruction.
I don't believe this explanation holds water. The constructs in question
date back to C's predecessor, B, which did not run on the PDP-11 and was
not compiled.
The pointer arithmetic is directly inherited from BCPL, which had only one
datatype -- the word -- and consequently provided pointer arithmetic as a
trivial side effect of providing integer arithmetic. Indeed, in the early
C compilers the distinction between pointers and integers got pretty fuzzy
at times, although unlike BCPL it was not absent entirely.
The *x++ constructs, according to Dennis Ritchie, were Ken Thompson's
inventions, probably vaguely inspired by the autoincrement/decrement
hardware of the PDP-7 but significantly generalized from them. (And in
any case, the PDP-7 hardware facilities were not used in implementing
them.)
These were deliberate design decisions, not accidents of implementation
constraints.
--
Henry Spencer @ U of Toronto Zoology, henry@zoo.toronto.edu utzoo!henry
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.