Types of Programming

Provides information othe different types of programming including relevant reference sites.

1. Logic Programming:

Logical Programming languages operate on facts and relationships from which they can draw a coherent and simple conclusion.

2. Functional Programming:

Functional programming languages are more closely related to the mathematical concept of `function' than imperative programming languages. This makes it easier to apply program-proving techniques and logical reasoning to functional programs. In particular, functional programs do not use the concept of variables in the traditional sense, i.e. a memory location whose contents might be changed from time to time as a program executes.

3. Imperative Programming:

Imperative programming is associated with languages like C, Fortran, Pascal etc. Imperative programming is distinguished from functional programming in that the former is strongly tied to the concept of variables and memory locations. A variable is associated with a memory location and the contents of that memory location may be changed, via the variable, over the course of time.

The meaning or effect of a program fragment at a particular point can only be understood by reference to the current contents of the set of relevant variables, therefore. In contrast, functional programs do not allow the contents of a variable to be changed once set (in simplified terms), hence making them easier to reason about. While languages such as C++ and Java are also imperative programming languages, strictly speaking, they are more commonly referred to as object-oriented programming languages.

4. Concurrent Programming:

Concurrent programming is characterized by programming with more than one process. The main advantage of concurrent programming is that operations can run parallel in it, thus they are much faster than sequential operations. Basically, concurrent programming uses processes and communication to design elegant, responsive and reliable systems.

5. Object-Oriented Programming:

Object oriented programming is the method of implementing programs which are organized as cooperative collections of objects, and each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships. In these types of programs, classes are generally viewed as static, whereas objects typically have a much more dynamic nature, which is encouraged by the existence of polymorphism.