Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+
Get a full dump of the dictionary:
List of Names
Short Form
Full Form
-
C
- Language type:
- Description:
C is a fairly low-level block structured
language with good support for system
programming. C is renowned as the language
of the UNIX operating system, but in fact
is widely used in PC, Mac, mainframe, and
other computing environments.
The original C programming language, as
described by Kernighan and Ritchie, had
fair arithmetic support, simple data
structures, subroutines, conventional
flow control constructs, naked
memory pointers, simple but useful
I/O facilities, and a powerful
macro preprocessor. C was
standardized, finally, in 1990;
currently the ANSI ISO/IEC 9899 (as
amended) defines the C language. The
ANSI standard defines better data type
handling and subroutine declarations
for C, as well as standardizing on
minimum I/O and other library facilities.
Primitive data types supported in modern
standard C are: several sizes of integers,
reals, characters, pointers, and arrays.
C does not have strings per se, but
the language does have the convention that
an array of characters ending with a nul (0)
character can be treated as
a string. Data aggregation types in C are
structures (records) and unions.
The C language has no I/O facilities defined
as part of the syntax.
The ANSI C standard defines an extensive
but low-level
standard library, including I/O mechanisms.
The standard library was not really designed,
it evolved out of the standard library
functions supplied with C implementations on
Unix systems.
C is a powerful language for writing
tight, fast, highly tuned code in a
language far more portable than assembly.
C is low-level enough to write
device drivers, and high-level enough
to write GUI libraries.
Modularity in C is limited to one level
of subroutines: all C names exist either
at the global scope, file scope, or
subroutine local scope.
C has no built-in support for separation
of module interfaces from module
implementation, but a flexible set
of conventions for employing the
macro preprocessor to separate "header"
files and "body" files has evolved to
support this paradigm.
C was extremely popular in academic
and industrial computing thoughout the
late 1970s through the early
1990s, and still enjoys
a huge user community. The influence
of C and UNIX on each other, and the
pair of them on the rest of computing,
cannot be underestimated. C also had
a profound impact on the WWW: the first
web servers and web clients were all
written in C.
Free and commercial C implementations are
widely available; one of the most popular
free implementations is the GNU C Compiler
(gcc). Information about the language
is widely available on the web and in
books.
- Origin:
Ritchie and Thompson, 1972-73; Kernighan and Ritchie, 1978
- See Also:
- Remarks:
Dozens of fine books on C exist, the
language is very well documented, and
literally thousands of support libraries,
toolkits, and code generators exist to
aid the C programmer. Even though
C has been somewhat displaced, perhaps
justly so, by more advanced cousins like
C it is still one of the most popular
programming languages.
A large number of free and commercial C
compilers exist. Many UNIX systems
are bundled with a C compiler (some people
would say that, to be a true UNIX system,
the box MUST include a C compiler).
The great power and flexibility that C
affords the programmer is its greatest
strength and its greatest threat. Many
programmers, from beginner to expert,
find themselves "bitten" by C's implicit
semantics, terse syntax, weak data
type enforcement, and cavalier attitudes
about memory references.
Actually, C can be so terse, and its
preprocessor is so easy to abuse, that a
folklore has grown up around unreadable
and incomprehensible C code.
While many programmers disparage C for
its lack of type safety and other advanced
features, it is noteworthy that many if
not most of the advanced functional, OO,
and declarative languages created in the
1990s were first compiled or interpreted
by C.
- Links:
-
-
-
- Date:
- Sample code:
#include <stdio.h>
/* count lines of standard input */
main(int argc, char *argv[]) {
char lbuf[256];
int lcnt;
for(lcnt = 0; fgets(lbuf,sizeof(lbuf) - 1, stdin); cnt );
printf("%d lines\n", lcnt);
exit(0);
}
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is ziring@home.com
[Ziring MicroWeb Home]
[Dictionary Start]
[Sign Guestbook]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.