Submit Your Site To The Web's Top 50 Search Engines for Free!       ExactSeek: Relevant Web Search


Flag Counter

Total Pageviews

Monday, December 17, 2012

The Origins of C

C was invented and first implemented by Dennis Ritchie on a DEC PDP-11 that used the Unix operating system. C is the result of a development process that started with an older language called BCPL. BCPL was developed by Martin Richards, and it influenced a language called B, which was invented by Ken Thompson. B led to the development of C in the 1970s. For many years, the de facto standard for C was the version supplied with the Unix version 5 operating system. It was first described in The C Programming Language by Brian Kernighan and Dennis Ritchie (Englewood Cliffs, N.J.: Prentice-Hall, 1978).
In the summer of 1983 a committee was established to create an ANSI (American National Standards Institute) standard that would define the C language once and for all. The standardization process took six years (much longer than anyone reasonably expected). The ANSI C standard was finally adopted in December 1989, with the first copies becoming available in early 1990. The standard was also adopted by ISO (International
Standards Organization) and is now referred to as the ANSI/ISO C standard. For simplicity, this book will use the term Standard C when referring to the ANSI/ISO C standard. Today, all mainstream C/C++ compilers comply with Standard C. Standard C is the foundation upon which C++ is built.

C Is a Structured Language

In your previous programming experience, you may have heard the term blockstructured applied to a computer language. Although the term block-structured language does not strictly apply to C, C is commonly referred to simply as a structured language. It has many similarities to other structured languages, such as ALGOL, Pascal, and Modula-2. The reason that C (and C++) is not, technically, a block-structured language is that block-structured languages permit procedures or functions to be declared inside other procedures or functions. Since C does not allow the creation of functions
within functions, it cannot formally be called block-structured. The distinguishing feature of a structured language is compartmentalization of code and data. This is the ability of a language to section off and hide from the rest of the program all information and instructions necessary to perform a specific task. One way that you achieve compartmentalization is by using subroutines that employ local (temporary) variables. By using local variables, you can write subroutines so that the
events that occur within them cause no side effects in other parts of the program. This capability makes it very easy for programs to share sections of code. If you develop compartmentalized functions, you only need to know what a function does, not how it does it. Remember, excessive use of global variables (variables known throughout the entire program) may allow bugs to creep into a program by allowing unwanted side effects. (Anyone who has programmed in standard BASIC is well aware of this problem.)

The concept of compartmentalization is greatly expanded by C++. Specifically, in C++, one part of your program may tightly control which other parts of your program are allowed access. A structured language allows you a variety of programming possibilities. It directly supports several loop constructs, such as while, do-while, and for. Inastructured language, the use of goto is either prohibited or discouraged and is not the common form of program control (as is the case in standard BASIC and traditional


Post a Comment