The textbook I'm using. |
"What is C? The simple answer -- a widely used programming language developed in the early '70s at Bell Laboratories..." -K.N. King
It is a by-product of UNIX, developed by Ken Thompson, Dennis Ritchie, Brian Kernighan, and others. Thompson was the (sole!!) writer of the original version of UNIX in '69, which ran on a DEC PDP-7 computer. UNIX was similar to other programs of its time, in that it was written in assembly language, making it painfully difficult to debug and enhance. Thompson decided a different language needed to be written for UNIX to be developed upon, and designed B to take on the task.
B is based on BCPL, also developed in the mid-60s; and BCPL is based on Algol 60. There was a period of time, during which Thompson tried re-writing UNIX in B, but he discovered that B was not very compatible to the newer computers of the early-70s. Ritchie took it upon himself to develop an extended version of B, which he called NB (or "New B"), until it began to diverge from the language upon which it was based. At this point, he changed the name to C.
By '73, C was stable enough to support UNIX and added the benefit of portability and increased compatibility.
Through the 70s, particularly between '77 and '79, C continued to evolve and become more flexible. During this time, Kernighan and Ritchie published the first C compendium, entitled The C Programming Language, which quickly became the standard for the language (known as K&R or "The White Book").
Source: Wikipedia |
A U.S. standard for C began in '83 with the support of the American National Standards Institute (ANSI). The next few years would be filled with revisions, before the formal approval was made in December of '89, followed by approval by the International Organization for Standardization (ISO). This version is known as C89 or C90 to distinguish it from the original version (referred to as K&R C).
There were a few changes in '95, which are described in a document known as Amendment 1; but more significant changes were made in '99 that prompted a publication of a new standard. This became known as C99.
C99 is still not universal and this author estimates that it will be some time before all C compilers are "C-99 compliant".
We segue now into C-Based Languages, of which several are detailed:
- C++ adds classes and other features to support object-oriented programming.
- Java is based on C++, but inherits many C features.
- C# is more recent, having been derived from C++ and Java.
- Perl was originally a fairly simple scripting language, but has grown and adopted many C features.
The author describes some reasons to learn C, despite the improved features of the newer languages. As I read through them, I see the same reasoning that I had when deciding to begin: All of the languages above are based on C; therefore, learning C will give insight into these other languages. Because C has been around for so long, there are many older programs written in C that may need someone to maintain them; but there is also a demand for the simplicity of C in newer programming. Learning this language seems to open many doors (not in the least, helping me attain my goal of designing a story-driven game of my own).
This is where I'll pause for today. Next time I take notes, I'll be getting into the Strengths and Weaknesses of C as a whole. Then... It will be time to tackle some programming!
No comments:
Post a Comment