Overview
Read this article from a comprehensive knowledge base, updated and supplemented with articles reviewed by scientific committees.
Read the articleAUTHOR
-
Christian QUEINNEC: Professor at Pierre-et-Marie-Curie University
INTRODUCTION
The C language was defined in 1972 by Bell Labs researcher Denis Ritchie, as part of a project to rewrite the Unix operating system in a high-level language. The C language was strongly influenced by its first client: Unix, and many of its features derive from the needs aroused by the development of this system. These features include:
compact writing to minimize program typing (we write {and} for begin and end). Programming speed was preferred to readability, the opposite being required in a language like Ada ;
the absence of a mandatory runtime library, rejecting input/output manipulation, task management, dynamic memory allocation, etc., in external, additional and optional libraries;
semantic proximity to the execution machine, systematically favoring fine-grained control of the latter to the detriment of any opaque abstraction. These include a type system that can be disengaged, no Booleans, no strings, a wide variety of integer sizes, and so on. This characteristic is accompanied by a slogan: "Trust the programmer", which stipulates the primacy of the programmer over the machine. If the program is not understood, the compiler will respect the program to the letter rather than reject it. C is often considered a dangerous or, at the very least, "dirty" language when compared to other programming languages occupying other niches and seeking to optimize other criteria. The 1990 ISO standard and its 1999 revision make it an increasingly safe language. C's health clearly demonstrates its unfailing vitality in its own niches.
C is a "high-level portable assembler", i.e. a high-level programming language that also allows precise manipulation of processor-related entities. Its characteristics could have reduced it to being just a language for writing Unix, but with the success of Unix and the fact that C is available (by construction) on all Unix machines (since porting Unix to an X machine requires writing a specific code generator from C to X), C has been increasingly chosen as a language for writing general-purpose applications. C can be considered as a normal programming language with its share of idiosyncrasies, the most delicate of which concern references and allocation.
Today, C occupies several niches in which its survival is not threatened. C can be used to write highly portable or highly specific programs.
Exclusive to subscribers. 97% yet to be discovered!
You do not have access to this resource.
Click here to request your free trial access!
Already subscribed? Log in!
The Ultimate Scientific and Technical Reference
This article is included in
Software technologies and System architectures
This offer includes:
Knowledge Base
Updated and enriched with articles validated by our scientific committees
Services
A set of exclusive tools to complement the resources
Practical Path
Operational and didactic, to guarantee the acquisition of transversal skills
Doc & Quiz
Interactive articles with quizzes, for constructive reading
C language
Bibliography
References
- (1) - KERNIGHAN (B.W.), RITCHIE (D.M.) - The C Programming Language. - Prentice-Hall (1978).
- (2) - HARBISON (S.P.), STEELE (G.L.) - C : A Reference Manual. - Prentice-Hall (1991).
Works
Websites
Historic site http://www.lysator.liu.se/c/index.html
EiC: The embeddable/extensible interactive, pointer-safe, bytecode C interpreter/compiler
Frequently asked questions http://www.eskimo.com/~scs/C-faq/top.html
...Standards
ISO C standards group http://www.dkuug.dk/JTC1/SC22/WG14/
ISO/IEC 9899: 1990 Programming language - C
ISO/IEC 9899: 1999 Programming language - C
Exclusive to subscribers. 97% yet to be discovered!
You do not have access to this resource.
Click here to request your free trial access!
Already subscribed? Log in!
The Ultimate Scientific and Technical Reference