The C programming language (one must pronounce "si") can be described as universal, economical, with a complete set of operators, with a modern data structure and control flow. This language cannot be called a “big” language, nor does it pretend to be a “high-level language”; it was not created for any specific tasks; on the contrary, they tried to make it as effective as possible for any application. This interesting fusion of ideas embedded in the C programming language has made it very convenient and more efficient for a wide range of problems than other, possibly even more advanced languages.
The connection of "C" with the "UNIX" OS is very close, since this language developed along with "UNIX" and most of the software for this system is written on it. At the same time, C is sometimes called the system programming language , since it is believed that it is convenient to create operating systems with its help, in fact, text editors, database processing programs and games are written with the same success.
C is a low-level programming language, but you should not assume that this is bad, in fact it simply operates on the same objects with which any computer constantly works, with symbols, addresses and numbers. In this case, all objects are combined, compared or subtracted using the usual logical and arithmetic operations familiar to computers.
Although functions for working with composite objects are becoming the norm in the coding world and they are embedded in all modern programming languages, C, unlike others, does not know how to work with objects such as a string, list, array, or many. It has no analogues of PL / 1 operations on whole strings and arrays.
With memory, C works with the help of the stack and statistical determination; it does not have other options for operating with memory; you will not find a “Heap” or “garbage collection” in it, as Pascal or Algol 68 can do.
And even the most basic mechanisms, I / O, language C does not provide, you will not find Read and Write operators in it, there are also no built-in functions for working with the file system. Such high-level operations are provided through plug-in libraries.
And the C programming language will refuse to work if you need multiprogramming, synchronization, parallel operations, etc. It contains opportunities exclusively for simple and consistent work, its element: cycles, checks, grouping and routines.
Someone might be surprised at such a parsimony of funds provided to programmers (“why should I call a function every time I need to compare a couple of lines!”), But on the other hand, it’s because of such cost savings that programs written in C get a real speed advantage.
On the other hand, a small number of operators reduces the time required to memorize them, and you only need a few pages to describe them all. And as practice shows, the compiler with "C" is a compact tool that is quite simple to write. If you use modern tools, the compiler for a completely new computer will be ready in just a couple of months, despite the fact that 80% of its code will be similar to the code of previous versions. Due to such a feature, the C programming language is considered very mobile. And its effectiveness is such that writing in assembler any programs that are performance-critical, as was customary before, just does not make sense anymore. The best example of this is the UNIX OS itself, which is 90% written in "C" and the application software for it, almost completely created by numerous programmers in the same wonderful language, which is currently considered the number one programming language in the world.