Programming Paradigms – What is?

The programming paradigm is the concept that assumes the form that programmer has on the programming and implementation of a program. Paradigms differ in the concepts and abstractions used to represent the elements of a program (such as objects, functions, variables, constraints, etc.) and the steps that make up a calculation (assignment, evaluation, continuations, data flows, etc.).

More clearly talking about is how to structure you will use to program and run your software is a concept that all languages ​​have to address, but there are many types of programming paradigms.


Let’s meet a few:

Programming Procedural

It is a programming paradigm based on the concept of procedure calls, also known as routines, subroutines, methods, or functions, which simply contains a set of computational steps to be performed. A procedure can be called at any time during program execution, including by other procedures or itself.

This paradigm is still widely used, because it is easier to understand and usually programmers learn to develop using this paradigm, it can be effective for simple problems and even for learning, but do not hold to this kind of paradigm, there are others who are much better than this.

Characteristics:

  • A set of instructions organized into blocks to perform a certain task (functions)
  • Feature Sets grouped by functionality in libraries
  • Modeling through flowchart and great use of algorithms
  • Extremely technician

Some languages ​​with this paradigm:

  • C
  • Pascal
  • Basic
  • C ++
  • PHP
  • Python
  • Visual Basic
  • Perl

Object Oriented Programming

The object orientation is the dominant programming paradigm today and is gradually replacing the procedural programming, created in the early 1960s. In this paradigm the program consists of objects with properties (attributes) and operations (methods) that can be run by them. All features and attributes of each system entity are stored in class representing that entity. Normally, we use the Unified Modeling Language (UML) to model object-oriented solutions.

Characteristics:

  • We can define object as an abstraction of a particular aspect of interest, including not only its structure, as in traditional methods, but also behavior, rules, knowledge, responsibility, life cycle, the intrinsic aspect in question. Objects with common characteristics are grouped into classes.
  • A feature derived from very common form of hierarchy “is” is the inheritance. Subclasses inherit structure and behavior of the subclasses which are connected, thus avoiding redundancies and inconsistencies. It should be noted the possibility of multiple inheritance in the case where a subclass may have relationship “is” more than one superclass.
  • The objects are in contact with other objects, and not in isolation. So called behavior to actions and reactions of an object, changing state and exchanging messages, contact with other objects. It is a visible activity. It is represented by so-called methods described for each class of objects.
  • Other very interesting features, from the area of ​​artificial intelligence, are the representation of knowledge and the definition of rules on objects or object classes. There is a growing collaboration between the areas of object orientation and artificial intelligence, bringing great contributions to both.

Some languages ​​with this paradigm:

  • C ++
  • C #
  • VB.NET
  • Java
  • Python
  • Ruby
  • Smalltalk

Programming Multiparadigm

A multiparadigm programming language is a language that supports more than one programming paradigm. The idea of ​​a multiparadigm language is to provide a framework in which the programmer can work with various styles, freely mixing builders of different paradigms. The goal in designing such languages ​​is to allow developers the best tool for a given job, admitting that no paradigm solve all the problems in the most elegant way, or even efficient.

The characteristics of multiparadigm programming may be associated with the junction of programming paradigms that it meets, that is, it unites all the features of programming paradigms that it encompasses.

Some languages ​​with this paradigm:

  • Scala
  • Oz

Structured Programming

There is no universally accepted definition for the structured programming; to Otherwise, there are several schools of thought that conceptualize.

In a narrower sense, the concept of structured programming relates to the way the program and the encoding process. It is a set of conventions that the programmer can follow to produce the structured code. coding rules impose limitations on the use of basic control structures, modular composition structures and documentation.

Characteristics:

  • Programming without GO TO (complete or partial elimination of the GO TO command)
  • Programming with only three basic control structures: sequence, selection and iteration
  • Form a structured program
  • Coding conventions structured application to a specific programming language

Some languages ​​with this paradigm:

  • Pascal
  • C

What Paradigm choose for my project?

The computational universe is complex. Thus, this universe was divided into parts, so that the complex could be worked ( “divide and conquer”). The existence of several programming paradigms justified only by the existence of various classes of problems. The choice of a paradigm depends on the kind of problem to be solved. Find the solution to a problem is to choose the paradigm that allows the expression of solution with minimal effort. However, certain problems do not allow a concise solution with the use of only one paradigm, i.e. require a larger form of expression to be solved.

Also it is always necessary to remember that the programming paradigm is totally independent of the programming language, or object orientation is a paradigm created to solve problems for developers and do not have a need to link with any language, who addresses these paradigms are programming languages, and we can also see that several programming languages ​​address various types of programming paradigm.