We gained Rear Admiral Grace Hopper on this day in 1906; known as "Amazing
Grace", she was a remarkable woman, both in computers and the Navy. She
coined the term "debugging" when she extracted a moth from a set of relay
contacts from a computer (the Harvard Mk I) and wrote "computer debugged"
in the log, taping the deceased Lepidoptera in there as well. She was
convinced that computers could be programmed in an English-like language
and developed Flow-Matic, which in turn became, err, COBOL... She was
posthumously awarded the Presidential Medal of Freedom in 2016 by Barack
Obama.
-- Dave
Very little in language design is so contentious as comment conventions.
C borrowed the PL/I convention, which had the virtue of being useful
for both in-line and interlinear comments, and did not necessitate
marking every line of a long comment. Nobody in the Unix lab had
had much experience with the convention, despite having worked on
Multics for which PL/I was the implementation language.
And how did PL/I get the convention? It was proposed by Paul
Rogoway at the first NPL (as it was then called) design-committee
meeting that I attended. Apparently the topic had been debated
for some while before and people were tired of the subject. Paul
was more firmly committed to his new idea than others were to
old options, so it carried more or less by default. Besides, there
was a much more interesting topic on the agenda. Between the
previous meeting and that one, George Radin had revamped the
entire NPL proposal from mainly Fortran-like syntax to Algol-like.
That was heady enough stuff to divert people's attention from
comments.
As for inexperiece. The comment conventions of previous
languages had not fostered the practice of commenting out
code. So that idea, which is the main impetus for nesting
comments, was not in anybody's mind at the time. Had it
been, nesting might well have carried the day. It probably could
have been changed before 1980, but thereafter there were
too many C compilers. Then standards introduced even more
conservatism. Perhaps Ken can remember whether the notion
was ever seriously considered.
Doug
Another DEC compiler that I forgot was the original C compiler for
Tru64 Unix on the Alpha. This was done at the DECwest facility in
Seattle (which originally had been set up by Dave Cutler). It was a
very strict implementation of the ANSI C89 standard--it had no
extensions such as K&R support. One customer called it the "Rush
Limbaugh of C compilers" because it was extremely conservative and you
couldn't argue with it.
-Paul W.
Hi all,
I haven't seen this on the list yet (apologies if I missed it):
https://unix50.org/
You can get a shell in various historical version of UNIX.
Enjoy !
> Why can't c language comments be nested?
For comments that really are comments, what would be the point?
For comments that are really removal of code - commenting out - there
is a better mechanism, #if (or #ifdef), which does nest.
-- Richard
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
> So how was it that so many smart - and somewhat like minded it seems
> people end up there? [At Bell Labs]
1. Bell Labs had a great reputation, though it was not at first known
for computing.
2. Research recruiters were researchers themselves, not HR people.
3. Recruiting was for quality hires, not for particular jobs;
complementary talent was valued.
4. Whom a candidate met on site was determined after s/he gave a seminar;
this promoted good matchups.
5. Researchers decided for themselves what to work on--either self-
generated or an interesting problem from elsewhere in the company.
6. If you needed to know something in most any field, you could usually
find a willing expert to get you on track to an answer.
7. Annual merit review was collegial. No one lost out because of unlucky
draw of a supervisor.
8. Collegiality in fact beat that of any faculty I know. Office doors
were always open; new arrivals needed only to do good work, not to
chase tenure.
This culture grew from the grand original idea of the Labs: R&D for
the whole of AT&T funded by the whole of AT&T, with a long time horizon.
I joined thinking the Labs was good seasoning for academia. The culture
held me for 39 years.
The premise was viable in the days of regulated monopoly. It has been
greatly watered down since.
Doug
Ken's story got me thinking about stuff I would still like to learn
and his comment about "when I got to Bell Labs"... made me wonder
how did Ken, Dennis, Brian, Joe and the rest of the crew make their
way to Bell Labs?
When I was just starting out, Sun was sort of the Bell Labs of the
time (not that Sun was the same as Bell Labs but it was sort of
the center of the Unix universe in my mind). So I wanted to go
there and had to work at it a bit but I got there.
Was Bell Labs in the 60's like that? If you were a geek was that
the place to go? I was born in '62 so I don't have any memory of
how well known the Labs were back then.
So how was it that so many smart - and somewhat like minded it seems -
people end up there?
--lm
> From: Toby Thain
> He made amends by being early to recognise that problem, and propose
> solutions, in his 1977 ACM Turing Award lecture
Actually, I'd consider a far bigger amend to be his work on Algol 60 (he was
one of the main contributors), which Hoare so memorably described as "a
language so far ahead of its time that it was not only an improvement on its
predecessors but also on nearly all its successors".
AFAICT, although Algol 60 itself is no longer used, basically _every_ modern
programming language (other than wierd, parallel ones, etc) is heavily
descended from Algol 60 (e.g. C, via CPL).
As for FORTRAN, it's worth recalling that it was originally for the IBM 704,
which was their very _first_ commercial computer with core memory! And not a
lot of it - early 704's came with a massive 4KW of main memory! So the
compiler had to be squeezed into _very_ small space - and it reportedly did an
excellent job of emitting efficient code (at a time when a lot of people
thought that couldn't be done, and so were hostile to the concept of writing
program in HLL). And the compiler had to be written entirely in assembler, to
boot...
Which brings up an interesting query - I wonder when/what the last compiler
written in assembler was? I gather these days compilers for new machines are
always bootstrapped as cross-compilers (an X compiler for the Y machine is
written in X, run through the X compiler for the [existing] Z machine, and
then run though itself, on the Z machine, to produce binary of itself for the
Y machine).
Noel