Best Answer

C is a general-purpose, procedural, imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on 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 also has had a great influence on 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. Though not originally designed as a language for teaching, and despite its somewhat unforgiving character, C is commonly used in computer science education, in part because the language is so pervasive.

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.

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

C also has the following specific properties:

Weak typing - for instance, characters can be used as integers (similar to assembly)

Low-level access to computer memory via machine addresses and typed pointers

Function pointers allow for a rudimentary form of closures and runtime polymorphism

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

A standardized C preprocessor for macro definition, source code file inclusion, conditional compilation, etc.

A simple, small core language, with functionality such as mathematical functions and file handling provided by library routines

C discarded the well established logical connectives and and or of most other algol derivatives and replaced them with && and , which

Were invented in order to make bit-wise operations (& and |) syntactically distinct - C's predecessor B used & and | for both meanings

Never evaluate the right operand if the result can be determined from the left alone (Minimal evaluation)

C popularized the controversial decision to free the equal-sign for assignment use by replacing = with == (inherited from B).

C lacks features found in some other systems implementation languages:

No non-scalar operations such as copying of arrays or strings (old versions of C did not even copy structs automatically)

No automatic garbage collection

No bounds checking of arrays

No semi-dynamic (i.e. stacked, runtime-sized) arrays until the C99 standard (despite not requiring garbage collection)

No syntax for ranges, such as the A..B notation used in both newer and older languages

No nested function definitions (although some compilers provide them, for example, GCC)

No formal closures or functions as parameters (only function and variable pointers)

No generators or coroutines; intra-thread control flow consists of nested function calls, except for the use of the longjmp or setcontext library functions

No exception handling; standard library functions signify error conditions with the global errno variable and/or special return values

Rudimentary support for modular programming

No compile-time polymorphism in the form of function or operator overloading; only rudimentary support for generic programming

No support for object-oriented programming; in particular, no support for polymorphism, inheritance and limited (inter-module only) support for encapsulation, even though there are libraries offering object systems for C, and many object-oriented languages are themselves written in C

No native support for multithreading and networking, though these facilities are provided by popular libraries

No standard libraries for graphics and several other application programming needs

Although the list of built-in features C lacks is long, this has contributed significantly to its acceptance, as new C compilers can be developed quickly for new platforms. The relatively low-level nature of the language affords the programmer close control over what the program is doing, while allowing solutions that can be specially tailored and aggressively optimized for a particular platform. This allows the code to run efficiently on very limited hardware, such as mass-produced consumer embedded systems, which today are as capable as the general-purpose machines originally used to implement C.

One consequence of C's wide acceptance and efficiency is that the compilers, libraries, and interpreters of other higher-level languages are often implemented in C.

C is used as an intermediate language by some higher-level languages. This is implemented in one of two ways, as languages which:

Can output object code, machine code, or another representation (e.g., bytecodes), and C source code. Examples: some Lisp dialects, Squeak's C-subset Slang.

Do not output object code, machine code, or another representation, but output C source code only. Examples: Eiffel, Sather; Esterel.

C source code is then input to a C compiler, which then outputs finished object or machine code. This is done to gain portability (C compilers exist for nearly all platforms) and to avoid having to develop machine-specific code generators.

Unfortunately, C was designed as a programming language, not as a compiler target language, and is thus less than ideal for use as an intermediate language. This has led to development of C-based intermediate languages such as C++

User Avatar

Wiki User

2011-10-30 03:02:03
This answer is:
User Avatar
Study guides

What is a programming language

What does DOS stand for

What is a software that is distributed for free

What do unix and Linux have in common

See all cards
63 Reviews

Add your answer:

Earn +20 pts
Q: What are different application areas of programming language?
Write your answer...
Still have questions?
magnify glass
Related questions

List few areas of computer application and their various programming languages?

various area of application in computer application in business

What are the areas of application of C language?

Operating systems, take Linux for example.

What is the areas of application of java?

Applications that are built using the Java language are termed as Java applications.

How do aborigines map their different language areas?

they dont

How will studying assembly language enhance your understanding of operating systems?

Assembly language is a good tool for learning how applications programs communicate with the computer's operating system via interrupt handlers, system calls, and common memory areas. Assembly language programming also helps when learning how the operating system loads and executes application programs.

what are the Main application areas of OOPs ?

Today, just about every major software development methodology is based on objects. As a result, virtually all programming languages, scripting languages and application designs are object-oriented or object-based.Main application areas of OOP are:User interface design such as windows, menu.Real-Time SystemsSimulation and ModellingObject-oriented databasesAI and Expert SystemNeural Networks and parallel programmingDecision support and office automation systems etc.Mobile Application DevelopmentGame

What are the different types of memory areas for different programming languages?

Code (readable, executable) Constant data (readable) Variable data (readable, writeable)

Can you list ten areas of computer application?

list areas computer application in education

Application of database management system?

The database management system is used in different areas because of its numerous advantages. The areas of application includes airlines and railways, banking, education, telecommunications, and credit cards transactions.

Where are the various areas of application of computer in society?

what are the application of computer in society

What are the different areas of information technology application?

Information technology is the application of telecommunication equipment and computers. Software applications are used for different areas that include customer support, sending, and receiving information. Computer hardware, software, and Internet telecom equipment are part of information technology.

What is application areas of internet?

applications areas of internet

People also asked