This programming language, with the lowest possible name, was created right in 1971 by Dennis Ritchie and Brian Kernigham system development UNIX operating. It deserves to be mentioned because its history is relevant to characterization of language.
So it was a question of designing a universal operating system that could work, theoretically, on any UNIX machine. This language was needed to exploit all possibilities of a car, but could not assembly language, because it is a new tool specifically rewriting the full system implementation effort.
Out of this dilemma could build a high-level language (initially language B, then C) and introducing the concepts of low level hardware
(Register, address absolute memory location, etc.).
More than 90% of the first UNIX operating system source
(Implemented on a PDP-7 machine) were written using C and the rest of the modules was used in assembly language. Resulting system was distributed in source format and programs describing the new language used, with obvious intention to turn it into a universal operating system.
Success has not come immediately, but was assured by the new working method.
Developers were encouraged to develop this system, extending it with new modules and implant it on other machines by rewriting parts of that minimum under 10% in assembly language … “C” became a language reference.
After this brief preamble, here are the main features of the language:
- very structured level language;
- possess low-level concepts, allowing portable operation characteristics of a private car.
For example, a variable often used, may be declared register
(Register) and then it will be stored in a register of the microprocessor, not a location of internal memory, increasing (sometimes considerably) speed of execution; data conversion routines very advanced (implicit conversions, inputs, outputs, memory conversions);
- data types defined by the user;
- management developed a dynamic data type;
- define new functions;
- indirect appeals data, variables (pointers);
- complete set of mathematical functions etc.
- functions to achieve the basic 2D graphics;
- call DOS service functions;
- can define the overlay links for a program;
- brevity particular language (set of operators and very brief instructions).