Penguin
Note: You are viewing an old revision of this page. View the current version.

One of the most widely recognised ProgrammingLanguages in the world.

It was designed by DennisRitchie at BellLabs/AT&T (along with other famous people such as KenThompson and BrianKernighan) as the SystemsProgrammingLanguage? to write their portable Unix OperatingSystem in. It was originally derived from BCPL but evolved radically. C is a great SystemsProgrammingLanguage?, but blamed for many problems with applications which many complain it is unsuited for.

The original version of C made many assumptions and led to Lint being written to check whether these assumptions were likely to be unsafe. Many of these assumptions were removed by ANSI-C? and the remainder of Lint's job merged into that of the compilers.

From fortune(6):

; C, n.
A ProgrammingLanguage that is sort of like Pascal except more like AssemblyLanguage except that it isn't very much like either one, or anything else. It is either the best language available to the art today, or it isn't.
-- Ray Simard

and

"The C Programming Language -- A language which combines the flexibility of AssemblyLanguage with the power of AssemblyLanguage."

C has inspired an entire class of languages, including C++ which some say fixes many problems with C, while others debate is just a horrible mess. Java has decended from C++ as a portable, clean object oriented language, itself in turn the inspiration for MicrosoftCorporation's new language called CSharp.

See the C History.

I recommend you learn C, and use it for writing OperatingSystems, and understanding how things actually are implemented, but then code in some other ProgrammingLanguage if you are going to write applications, especially networking programs.


The following example is a program to approximate the value of pi (Compile it with gcc -traditional-cpp -o pi pi.c). If you want a better approximation, increase the program's source code area :).

/*

  • Program to compute an approximation of pi
  • by Brian Westley, 1988
  • /
  1. define _ -F<00||--F-OO--;

int F=00,OO=00; main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO() {

---

--------_

-----------

-------------

--------------_ --------------_

--------------- --------------- --------------- ---------------

--------------_ --------------_

-------------

-----------

-------

---

}

(As seen in JargonFile:Obfuscated-C-Contest)


Various snippets of information about C in the wiki:


CategoryProgrammingLanguages, CategoryImperativeProgrammingLanguages, CategoryMachineOrientedProgrammingLanguages, CategorySystemsProgrammingLanguages

lib/BlockParser.php:505: Notice: Undefined property: _tight_top