---------------------------------------- What Is C? March 28th, 2020 ---------------------------------------- What is C? It's 1969, how are you programming? A lot of businesses are using COBOL to process payroll and accounting data. A lot of number crunchers are using FORTRAN for engineering compuations. But a lot of folks are still programming in assembly language. Especially if they are writing operating systems. This is not meant to be an authoritative definition or history of C. There are plenty of good sources for each. I just want to give you a sense of the what their world must have been like. On a computer like the PDP-7 had the equivalent of about 128k of RAM and cost around 500,000 dollars in today's dollars. Programmers were as likely to code in assembly language as they were to run a high level language compiler. It was on the PDP-7 that Unix was first developed by Thompson and Ritchie, in 1969. It was much less capable than a mainframe that might have had up to 4 megabytes of memory, but it was decidedly less expensive and therefore accessible to small teams of users. But there was a problem with the first version of Unix. When it came time to port Unix to other systems like the more capable PDP-11, it required a rewrite. When DEC came out with a new computer, it didn't just make a slightly faster version of the previous model. Instead, companies often came out with a whole new architecture. Meaning the CPU and the instructions were different from model to model. Becuase the new processor had a different set of instructions, assembly language programs had to be re-written. We no longer have this problem. When Dell comes out with a new server, it's the same architecture but slightly faster. A high level language would allow the software to be ported to a new architecture without costly re-writes to assembly language routines. Ritchie and Kernighan created C mostly to make porting Unix a simpler process. The parts of Unix that require asembly language are very small with the bulk of Unix written in C. Even if you came up with a completely different instruction set from anything that came before, it would be posible to write a C compiler for that processor and port Unix to it. With only some small bits here and there that specific to a computer architecture and processor. Maybe that's why C has been so successful. It was built to solve a very real problem, in a world where computing resources were expensive and limited. It wasn't designed by committee of as an academic exercise. And the folks that did create it were incredibly talented and intelligent individuals. ____________________________________________________________________________ Gophered by Gophernicus/3.0.1 on Ubuntu/22.04 x86_64