C (programming Language) Article Index for
C
 

Information About

C (programming Language)




  Logo <br /><small>'' The C Programming Language '', Brian Kernighan and Dennis Ritchie , the original edition that served for many years as an informal specification of the language</small>
  Paradigm Imperative ( Procedural ) systems implementation language
  Year 1972
  Designer Dennis Ritchie
  Developer Dennis Ritchie & Bell Labs
  Latest Release Version C99
  Latest Release Date March 2000
  Typing Static , Weak
  Implementations GCC , MSVC , Borland C , Watcom C
  Influenced By B ( BCPL , CPL ), ALGOL 68 , Assembly
  Influenced Awk , Csh , C++ , C# , Objective-C , BitC , D , Concurrent C , Java , JavaScript , Limbo , Perl , PHP


C is also widely used for Applications . C has also greatly influenced many other popular languages,See Generational List Of Programming Languages especially C++ , which was designed as an enhancement to C.


PHILOSOPHY


C is an Imperative ( Procedural ) Systems Implementation language. Its design goals were for it to be compiled using a relatively straightforward Compiler , provide low-level access to memory, provide language constructs that map efficiently to machine instructions, and require minimal Run-time Support . C was therefore useful for many applications that had formerly been coded 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

Like most imperative languages in the ALGOL tradition, C has facilities for Structured Programming and allows Lexical Variable Scope and Recursion , while a static Type System prevents many unintended operations. Parameters of C functions are always passed by value. Pass-by-reference is achieved in C by explicitly passing Pointer values. Heterogeneous aggregate data types ( Struct ) allow related data elements to be combined and manipulated as a unit. C program source text is free-format, using semicolon as a statement terminator (not a delimiter). C has around 30 reserved Keywords .

C also exhibits the following more specific characteristics:
  • non-nestable function definitions, although variables may be hidden in nested blocks

  • partially Weak Typing ; for instance, characters can be used as integers

  • low-level access to Computer Memory by converting machine addresses to typed Pointers

  • function pointers allowing for a rudimentary form of Closures and Runtime Polymorphism

  • Array indexing as a secondary notion, defined in terms of pointer arithmetic

  • a Preprocessor for Macro definition, Source Code file inclusion, and conditional compilation

  • complex functionality such as I/O , String manipulation, and mathematical functions consistently delegated to Library Routines

  • syntax divergent from ALGOL , often following the lead of C's predecessor B , for example using

  • --- { ... } rather than ALGOL 's begin ... end

  • --- the equal-sign for assignment (copying), much like Fortran

  • --- two consecutive equal-signs to test for equality (compare to .EQ. in Fortran or the equal-sign in BASIC )