Definition C Language

C is a programming language initially developed by Dennis M. Ritchie between 1969 and 1972 at Bell Laboratories, as an evolution of the previous B language, in turn, based on BCPL.

Like B, it is a language-oriented to the implementation of Operating Systems, specifically Unix. C is known for the efficiency of the code it produces and is the most popular programming language for creating systems software. Although it also helps to develop applications.

It is a language of static data types, of medium level but with many low-level characteristics. It has the typical structures of high-level languages. But, in turn, it has language constructions that allow superficial level control.

Compilers often offer extensions to the language make it possible to mix assembly code with C code or directly access memory or peripheral devices.

The first standardization of the C language was in ANSI, with the X3.159-1989 standard. The language that defines this standard was familiar as ANSI C. Later, in 1990, it got an ISO standard (ISO / IEC 9899: 1990). The adoption of this standard is extensive. So if the programs created follow it, the code is portable between platforms and architectures.

Objectives of C Language

One of the purposes of language C design is that only a few machine-language instructions need to translate each language element, without requiring intensive support at runtime. It is possible to write C at a low level of abstraction; in fact, C was an intermediary between different languages.

Partly because of being relatively low level and having a set of features, C compilers can quickly develop. Consequently, the C language is available in a wide range of platforms (more than any other language). Despite its low-level nature, the language was developed to encourage independent machine programming.

A written program meeting the standards and trying to be portable can get compiled on many computers.

C was originally developed (in conjunction with the Unix operating system, with which it was associated for a long time) by programmers for programmers. However, it has achieved enormous popularity and used in contexts other than software programming.

Properties

  • A simple language core, with important added functionalities, such as math and file management functions, provided by libraries.
  • It is a very flexible language that allows programming with multiple styles. One of the most used is the structured “not taken to the extreme” (granting specific break licenses).
  • It prevents meaningless operations.
  • The C preprocessor, for tasks such as defining macros and including multiple source code files.
  • Access to low-level memory through the use of pointers.
  • Processor interruptions with unions.
  • A reduced set of keywords.
  • By default, the passing of parameters to a function gets done by value. The reference step is achieved by explicitly passing the memory addresses of these parameters to the tasks.
  • It provides pointers to functions and static variables, which allow a rudimentary form of encapsulation and polymorphism.
  • Types of aggregated data (struct) that allow related data (such as an employee, having an id, a name, and a salary) to be combined and manipulated as a whole (in a single “employee” variable).

Disadvantages

Native garbage collection, however libraries such as the “libgc” developed by Sun Microsystems or the Boehm garbage collector, are found.

Support for object-oriented programming, although the original C ++ implementation was a preprocessor that translated C ++ source code to C.

Nested functions, although GCC has this feature as an extension.

Native support for multi-threaded programming.

Although the list of useful features that C’ lacks is long, this factor has been famous for its acceptance. Because quickly writing new compilers for new platforms, keeps what the program does under the direct control of the programmer, and allows to implement the most natural solution for each platform. It is the reason why C is often more efficient than other languages.

Typically, only careful programming in assembly language produces faster code, as it gives full control over the machine. However, advances in C compilers and the increasing complexity of modern microprocessors have gradually reduced this difference.

In some cases, a nonexistent characteristic may approximate. For example, the original C ++ implementation consisted of a preprocessor that translated C ++ source code to C. Most object-oriented functions include a unique pointer, which usually receives the name “this,” which refers to the object to which it belongs to the function.