Side note: This blog is probably written in 2008. I created a website c-programming-guide.com with some amateur articles. Well, you cannot expect a student with 2-year experience to come out with something great. But anyway, I wrote these articles, and some of them are actually fun.
Everything on earth has history, How about the history of C programming language?
It is boring to read technical article about history of C programming (I suffered a lot though I learned a lot), I don’t want you to struggle with the same sort of article. I will write it in an informal way and keep it short (without lose of essential information hopefully). But don’t expect it could be as interesting as romance.
If you think you prefer to read those technical articles, some useful links are provided at the end of this page.
C programming language is a piece of art, so it takes time for it to come to the world. Before C, there is a computer language called CPL, which is abbreviation of Combined Programming Language. It’s designed to deal with both high-level, machine-independent programming, while still allow the user to control the individual bits of information.
Well, it sounds very powerful. It is, indeed. However, everything has its drawbacks. CPL is too large to use in many applications.
So here came BCPL by Martin Richard in 1967, which is Basic CPL. It’s mainly designed to scaled down CPL, while keep most of its features.
It seems this strategy works, and some one did it further. In 1970, Ken Thompson, a Bell Lab engineer, developed B programming language by scaling down BCPL further.
C’s birth and ANSI C
Finally, C programming language came to birth in 1972. Another Bell Lab engineer, Dennis Ritchie created C based on B language.
It inherited B’s concise syntax, and had a powerful mix of high-level functionality. Originally, UNIX operating system is written in assembly language. Because of C’s power and flexibility, it was re-written in C programming language right after the creation of C except the “bootstrap” part.
Because of the “marriage” with UNIX, C spread throughout the computing world. It soon became the most popular computer language.
Soon, many organizations met compatibility problems because they use their own version of C. Thanks to ANSI (American National Standards Institute). In 1983, they formed a committee to come up with a standard for C, known as ANSI C.
C’s Descendants and Future
While C is descendant of B, it does have descendants too.
Obj-C is a descendant of C. It’s the main development language for Apple’s next generation operating system, codenamed Rhapsody.
Another descendant is Concurrent C. It is specially designed for concurrent programming.
The most important and well-known two descendants of C are C++ and C#. C++ is C plus some object-oriented features and plus some other functions. C# is invented by Microsoft to compete with Sun’s java programming language. It is fully object-oriented. So sometimes we don’t treat it as descendant of C.
Unlike B, C doesn’t step down the stage when its descendants came out. Today, C is still playing vital roles in many applications. Many UNIX/Linux applications are still written in C. C is used with assembly language to control hardware.
The history of C programming language will go on…