What is C Programming?
The C language is more than 40 years old. It got its name because it was influenced by a now almost forgotten language called B (which was in turn derived from BCPL). C has gone on to spawn a lot of other languages, used for both general and niche purposes. C itself, though, has never gone out of style. The TIOBE Community Index, one indicator of programming language popularity, has it placed at #1.
Applications of the C Language
What is C used for? Lots of things. The first objective was writing an operating system. C has written more than one in its time. It is known as a highly portable language. A number of other languages rely in part on it. It has often been used to write compilers, libraries, and interpreters for other languages. A high level language is, in a sense, a program. It has to be translated into a lower level language. Here C comes in handy.
C is used in many different industries. It is a popular language for embedded software. There are multiple reasons: the availability of compilers as well as the performance of the language itself.
Another industry – one that offers a seeming contrast -- is video games. This is largely the territory of C and related language C++. One of the issues here is speed.
History of C
C development began in 1969, but it wasn't until a few years later that we can really say it was born. An article by Dennis Ritchie (posted on the Bell site) includes the humorous remark that B was turned into C in the years 1971 to 1973. The history of the C language is closely tied to the history of the Unix operating system. Both grew from failed attempt of Bell Labs to create a Multics system. Ritchie was one of the chief C creators. He built on work by Ken Thompson. Thompson and Ritchie continued to make contributions for several more years, but other early contributors also played a large role.
The TIOBE Community Index, one indicator of programming language popularity, has it ranked at #1.
In 1973, C was used to rewrite the Unix core. For approximately a decade, it was primarily a Unix language.
Before C was officially standardized, a book served as reference. The first official standard came through the American National Standards Institute. Later the International Organization for Standardization took charge.
Like most languages, C has changed a good deal over the years. More recent editions have been named after the last two digits of the year that they came out. That's why C99 (1999) preceded C11 (2011). One recent improvement was compatibility -- C11 is more compatible with C++.
There are a number of libraries outside the standard one.
C is not generally thought of as a beginner's language, but it's a good one to learn if you're serious about software engineering. In certain industries, it -- or other languages based off it -- reign supreme.
You can find resources for C language learning online. One useful site is Cprogramming. In addition to the basics, you'll find industry-specific tutorials for C and related languages. You can choose game programming or graphics. You can also find C-specific information about algorithms and data structures. (If you want additional information from the same source, an ebook is available.) [Check out undergraduate computer science degrees as well]
C Programming Expert offers a well-organized tutorial written in layman's language. Drexel University also has an introductory tutorial which will get you typing right away. Drexel stresses that reading online tutorials is no substitute for textbooks, though, as they provide more in-depth instruction.
Different organizations will recommend different books. The C Programming Language is co-authored by Dennis Ritchie – this is a well-respected one. Learn C the Hard Way is another one you may hear referenced. (Learning "the hard way" is touted as a way of avoiding bad habits.)
C is not generally thought of as a beginner's language, but it's a good one to learn if you're serious about software engineering.
There are additional book recommendations on the site of CProgramming.com. They suggest that if you go with the “for Dummies” series, you get the second book – if you’ve done some basic online tutorials, the first may be redundant.Back to the Programming Learning Center