On Mon, Jan 29, 2018 at 8:20 AM, dave porter <[email protected]> wrote:
> I recall reading something from Dennis Ritchie to the effect > that if he'd been able to get hold of a BLISS compiler he > wouldn't have bothered to invent C. But DEC held on to > its compilers tightly. Hmmm.. to be honest this sound nice but I suspect it is more like legend/wishful thinking than something Dennis would have said. Unfortunately we can not ask him, but I can report a little on how both languages came into being (actually all three cause you need to include B here also) as I know/knew the designers of both and was a witness to a small portion of the stories. You can then decide for yourself. Two related things that I did not mention yesterday when I was describing the differences between the languages are that BLISS has only one data type (a 'word') and is 'typeless' in the sense of Pascal or other strongly typed languages. C was originally 'weakly typed' and only later added strong typing (and why is important). Also remember that at the time BLISS was designed, Wulf specifically targeted the PDP-10(the PDP-11 did not yet exist and the PDP-8 was explicitly a non-target). I'm pretty sure if you read Wulf's original paper, they were not trying to be architecture independent. Also it was designed to be an >>implementation<< language for the PDP-10. Another point is that Wulf and team had other tools for the PDP-10 when they wrote it - including an OS. B (C direct predecessor), like BCPL and BLISS, was untyped and worked with words only. In fact, Ken is on record as saying that he was originally starting to develop a Fortran compiler for the PDP-7 to run on UNIX (both of which had been written in PDP-7 assembler). He ended up with a new semi-interpreted language that was good enough to write utilities; i.e. B was born and started a life of its own. He was clearly influenced by BCPL and had just been using PL/1 with Multics. Clearly he was trying to create an implementation language for the PDP-7. But Ken was not using any tools other than his own for the PDP-7 - in fact he was originally cross assembling from a GECOS system. Once UNIX was 'up' on the PDP-7, it was minimal compared to TOPS-10, that Wulf had used [check out: pdp7-unix is a project to resurrect Unix on the PDP-7 <https://github.com/DoctorWkt/pdp7-unix>]. BTW: another salient point is that Ken, Dennis and team had previously tried to purchase a PDP-10 for their lab, and had been rejected by their management. The whole reason Ken was working on the PDP-7, was that he borrowed it from another group and he had access to it. They were using GCOS as their 'main systems' and the PDP-7 system was being developed as an independent project. So by the time of moving Unix to PDP-11, Dennis had switched from an B interpreter to a B compiler; which then begat NB, ney C [See Clem Cole's Quora answer What-language-was-the-first-C-compiler-written-in <https://www.quora.com/What-language-was-the-first-C-compiler-written-in>]. So the point is that Dennis was building tools to support their project and C was just continuing the development of Ken's B. One can argue, why did Ken not just build something more like BCPL instead of B? I can not say, maybe the brevity of { } from PL/1 was more attractive than the Algol BEGIN/END style? I don't know. But I suspect it was because he was originally targeting Fortran that he kept 'blocks' to be minimal. He ended up with something like BCPL in semantics and PL/1 in syntax than Fortran. Back to C: With the PDP-11 Dennis added supports for different data types - in particular bytes and byte addressing. Originally, he left the C language mostly typeless (everything defaulted to an int). C stays that way for a long time, through K&R. But as the language starts to get used for other architectures, the ideas of being 'more strongly typed' starts to come into play. In fact, I think the two primary changes to ANSI C that helped to cement C in the long run, were strong typing and function prototypes (which used it). As I think back on Wulf's intention to create a systems programming language with good support for SW engineering, and I suspect the single 'word' and lack of typing actually would have hurt Bill's claimed intent for BLISS (I've never asked him - I need too next time I see him). All this comes back to my point. Btw the time Dennis develops, C, B had been in use and had been created incrementally from B. If Ken had had access to BLISS compiler, he would have needed it on GCOS, and CMU never created same and then you are correct, sold the rights to their implementations to DEC. But the fact is, Ken and Dennis did have a BCPL compiler on GCOS? So why not just retarget it to the PDP-7? Why did Ken create B? Clem ᐧ
_______________________________________________ Simh mailing list [email protected] http://mailman.trailing-edge.com/mailman/listinfo/simh
