C Introduction

Introduction

C is a general-purpose, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the UNIX operating system.It has since spread to many other operating systems, and is now one of the most widely used programming languages. C has also greatly influenced many other popular languages,especially C++, which was originally designed as an enhancement to C. It is the most commonly used programming language for writing system software,though it is also widely used for writing applications

Philosophy

C is a minimalistic programming language. Among its design goals were that it could be compiled in a straightforward manner using a relatively simple compiler, provide low-level access to memory, generate only a few machine language instructions for each of its core language elements, and not require extensive run-time support. As a result, C code is suitable for many systems-programming applications that had traditionally been implemented in assembly language.

Despite its low-level capabilities, the language was designed to encourage machine-independent programming. A standards-compliant and portably written C program can be compiled for a very wide variety of computer platforms and operating systems with minimal change to its source code. The language has become available on a very wide range of platforms, from embedded microcontrollers to supercomputers.

Characteristics

  • As an ALGOL-based language, C has the following characteristics:
  • A procedural programming paradigm, with facilities for structured programming
  • Lexical variable scope and recursion
  • A static type system which prevents many meaningless operations
  • Function parameters are generally passed by value (pass-by-reference is achieved in C by explicitly passing pointer values)
  • Heterogeneous aggregate data types (struct in C) which allow related data elements to be combined and manipulated as a unit
  • A small set (around 30) of reserved keywords