View RSS Feed

Pen Name Zen Naari

I needed a place to put this because my school operating system is different >.>

Rate this Entry
The History of C

The programming laguange of C was invented around the early 1970s as a language that utilizes a system for the birth of the Unix operating system. Coming from the typeless language called BCPL (Basic Combined Programming Language), it obtained a type structure; made on a tiny machine as a tool to improve a poor programming environment, it became one of the most superior languages of today.

C was born in the years 1969 to 1973, at the same time as the early development of the Unix operating system. A lot of changes peaked between 1977 and 1979, when the portability of the Unix system was being exhibited. In the middle of this second period, the first widely available description of the language appeared: The C Programming Language, often called the `white book' or `K&R'. Finally, in the middle 1980s, the language was officially standardized by the ANSI X3J11 committee, which made more changes. Until the early 1980s, although compilers existed for a variety of machine architectures and operating systems, the language was almost only associated with Unix; more recently, its use has widely spread, and today it is among the languages most commonly used throughout the computer industry.

The late 1960s were a disturbing era for computer systems research at Bell Telephone Laboratories. The company was pulling out of the Multics project, which started as a joint venture of the MIT, General Electric, and Bell Labs; by 1969, Bell Labs management, and even the researchers, came to believe that the promises of Multics could be fulfilled only too late and too expensively. Even before the GE-645 Multics machine was removed from the premises, an informal group, led primarily by Ken Thompson, had begun observing alternatives.

Thompson wanted to make an easy and comfortable computing environment constructed according to his own design, using whatever means that were available. His plans, it is evident in review, incorporated many of the innovative aspects of Multics, including an explicit notion of a process as a position of control, a tree-structured file system, a command interpreter as user-level program, simple representation of text files, and generalized access to devices. They excluded others, such as joint access to memory and to files. In the beggining, moreover, he and the rest of the informal group which he led deferred another deveolping element of Multics, namely writing almost only in a higher-level language. PL/I, the implementation language of Multics, was not very satisfactory, but were also using other languages, including BCPL, and they regretted losing the advantages of writing programs in a language above the level of assembler, such as the ease of writing and clarity of understanding. At the time they did not put much weight on portability; interest in this arose later on.

Thompson went a step further by inventing the ++ and -- operators, which increment or decrement; their prefix or postfix position determines whether the alteration occurs before or after noting the value of the operand. They were not in the earliest versions of B, but appeared along the way. People often guess that they were created to use the auto-increment and auto-decrement address modes provided by the DEC PDP-11 on which C and Unix first became popular. This was impossible back then, since there was no PDP-11 when B was made. The PDP-7, however, did have a few `auto-increment' memory cells, with the property that an indirect memory reference through them incremented the cell. This feature probably suggested such operators to Thompson; the general idea to make them both prefix and postfix was his own. Indeed, the auto-increment cells were not used directly in making of the operators, and a stronger inspiration for the innovation was probably his observation that the translation of ++x was smaller than that of x=x+1.

The success of the portability experiment on the Interdata 8/32 soon led to another by Tom London and John Reiser on the DEC VAX 11/780. This machine became much more popular than the Interdata, and Unix and the C language began to spread quickly, both within AT&T and outside. Although by the middle 1970s Unix was in use by a variety of projects within the Bell System as well as a small group of research-oriented industrial, academic, and government organizations out of the company, its real growth began only after portability had been achieved. One particular note was the System III and System V versions of the system from the growing Computer Systems division of AT&T, based on work by the company's development and research groups, and the BSD series of releases by the University of California at Berkeley that derived from research organizations in Bell Laboratories.

During the 1980s the use of the C language spread widely, and compilers became available on almost every machine architecture and operating system; in particular it became popular as a programming tool for personal computers, both for manufacturers of commercial software for these machines, and for end-users interested in programming. At the start of the decade, almost every compiler was based on Johnson's pcc; by 1985 there were many independently-produced compiler products.

-Zener R. Lavarias
Categories
Uncategorized

Comments