Está en la página 1de 6

Paradigmas de programacin

Para iniciar, tomaremos como base la definicin de paradigma.

Paradigma.

(Del lat. paradigma, y este del gr. ).

1. m. Ejemplo o ejemplar.

2. Teora cuyo ncleo central se acepta sin cuestionar y que suministra la


base y modelo para resolver problemas y avanzar en el conocimiento: p. ej.,
en la ciencia, las leyes del movimiento y la gravitacin de Newton y la teora
de la evolucin.

Un paradigma de programacin indica un mtodo de realizar cmputos y la manera


en que se deben estructurar y organizar las tareas que debe llevar a cabo un
programa.

Los paradigmas fundamentales estn asociados a determinados modelos de


cmputo.

Los lenguajes de programacin suelen implementar, a menudo de forma parcial,


varios paradigmas.

A lo largo de la historia, el trmino paradigma fue objeto de muchas


interpretaciones. En su origen griego, significaba modelo, ejemplo o patrn.
Sobre este punto de partida, podemos hablar de un paradigma como un conjunto
de creencias, prcticas y conocimientos que guan el desarrollo de una disciplina
durante un perodo de tiempo. En diversas ramas de la ciencia, un conjunto de ideas
en vigencia puede ser reemplazado drsticamente por otro que entre en conflicto
con l y se demuestre ms acertado. La programacin tiene sus propios
paradigmas, pero el trmino paradigma de programacin no necesariamente
representa un modelo nico que deba ser respetado hasta que aparezca otro mejor.
De hecho, actualmente muchos paradigmas coexisten en armona.

Un paradigma de programacin es un estilo de desarrollo de programas. Es decir,


un modelo para resolver problemas computacionales. Los lenguajes de
programacin, necesariamente, se encuadran en uno o varios paradigmas a la vez
a partir del tipo de rdenes que permiten implementar, algo que tiene una relacin
directa con su sintaxis.

Principales paradigmas de programacin

Imperativo. Los programas se componen de un conjunto de sentencias que


cambian su estado. Son secuencias de comandos que ordenan acciones a la
computadora.

Declarativo. Opuesto al imperativo. Los programas describen los resultados


esperados sin listar explcitamente los pasos a llevar a cabo para alcanzarlos.

Lgico. El problema se modela con enunciados de lgica de primer orden.

Funcional. Los programas se componen de funciones, es decir, implementaciones


de comportamiento que reciben un conjunto de datos de entrada y devuelven un
valor de salida.

Orientado a objetos. El comportamiento del programa es llevado a cabo por


objetos, entidades que representan elementos del problema a resolver y tienen
atributos y comportamiento.

Dirigido por eventos. El flujo del programa est determinado por sucesos externos
(por ejemplo, una accin del usuario).

Orientado a aspectos. Apunta a dividir el programa en mdulos independientes,


cada uno con un comportamiento bien definido.

Cada paradigma es ideal para la resolucin de un conjunto de problemas particular,


por lo que no puede decirse que uno sea necesariamente mejor que otro.
Paradigma Imperativo

Describe cmo debe realizarse el clculo, no el porqu.

Un cmputo consiste en una serie de sentencias, ejecutadas segn un control de


flujo explcito, que modifican el estado del programa.

Las variables son celdas de memoria que contienen datos (o referencias), pueden
ser modificadas, y representan el estado del programa.

La sentencia principal es la asignacin.

Asociados al paradigma imperativo se encuentran los paradigmas procedural,


modular, y la programacin estructurada.

El lenguaje representativo sera FORTRAN-77, junto con COBOL, BASIC, PASCAL,


C, ADA. Tambin lo implementan Java, C++, C#, Eiffel, Python,...

Programacin estructurada

La programacin se divide en bloques (procedimientos y funciones) que pueden o


no comunicarse entre s.

Se da a travs del uso de enunciados.

Los lenguajes de programacin destacados en este tipo de programacin son:

Pascal: Es un lenguaje de alto nivel; se parece ms al lenguaje natural


hablado, o al matemtico, que al lenguaje de mquina. Una de sus ventajas
es du reducido conjunto de instrucciones, lo que lo hace relativamente
compacto y fcil de aprender.

C: Se considera un lenguaje de nivel medio, ya que combina elementos de


lenguajes de alto nivel con el funcionalismo del lenguaje ensamblador.
Algunas de sus caractersticas son; tamao pequeo, comandos breves
(poco tecleo), lenguaje estructurado, programacin de bajo nivel, uso
extensivo de apuntadores para la memoria, arreglos, estructuras y funciones
Programacin orientada a objetos

El problema con la abstraccin de datos es que no hay ninguna distincin entre las
propiedades generales y las particulares de un conjunto de objetos.

El comportamiento del programa es llevado a cabo por objetos, entidades que


representan elementos del problema a resolver y, tienen atributos y
comportamiento.

Expresar esta distincin y aprovecharla es lo que define a la OOP a travs del


concepto de herencia. El paradigma de la programacin orientada a objetos es,
entonces,

a) Definir que clases se desean.


b) Proporcionar un conjunto completo de operaciones para cada clase.
c) Indicar explcitamente lo que los objetos de la clase tienen en comn
empleando el concepto de herencia.

Se aplica mediante clases a travs de los lenguajes de programacin siguientes:

Java: El paradigma de programacin del lenguaje Java se basa en el


concepto de programacin orientada a objetos (OOP), que las funciones del
lenguaje soportan. Por lo tanto, el lenguaje Java es un derivado del lenguaje
C, por lo que sus reglas de sintaxis se parecen mucho a C.

C#: La intencin de su creacin fue el extender al lenguaje de programacin


C, a travs de mecanismos que permiten la manipulacin de objetos. Y
algunas de sus caractersticas son: tiene un conjunto completo de
instrucciones de control, permite la agrupacin de instrucciones, incluye el
concepto de puntero, los argumentos de las funciones se transfieren por su
valor.
Paradigma Declarativo

A la programacin imperativa se le contrapone la programacin declarativa en la


que se describe la lgica de computacin necesaria para resolver un problema sin
describir un flujo de control de ningn tipo. Efectivamente, en la programacin
declarativa no es necesario definir algoritmos, puesto que se detalla la solucin del
problema en lugar de como llegar a esa solucin.

No se basa en el cmo se hace algo (cmo se logra un objetivo paso a paso), sino
que describe (declara) cmo es algo. En otras palabras, se enfoca en describir las
propiedades de la solucin buscada, dejando indeterminado el algoritmo (conjunto
de instrucciones) usado para encontrar esa solucin. Es ms complicado de
implementar que el paradigma imperativo, tiene desventajas en la eficiencia, pero
ventajas en la solucin de determinados problemas.

Dentro de esta categora se engloban la programacin funcional cuyo lenguaje ms


expresivo y culmen sea seguramente el lenguaje Haskell, la programacin lgica
donde sin duda el campen es Prolog (ampliamente usado en ambientes
acadmicos) y la programacin restringida o con restricciones entre otras.

Programacin funcional

Los programas se componen de funciones, es decir, implementaciones de


comportamiento que reciben un conjunto de datos de entrada y devuelven un valor
de salida.

Este paradigma concibe a la computacin como la evaluacin de funciones


matemticas y evita declarar y cambiar datos. En otras palabras, hace hincapi en
la aplicacin de las funciones y composicin entre ellas, ms que en los cambios de
estados y la ejecucin secuencial de comandos (como lo hace el paradigma
procedimental). Permite resolver ciertos problemas de forma elegante y los
lenguajes puramente funcionales evitan los efectos secundarios comunes en otro
tipo de programaciones.
Destacan los lenguajes de programacin Haskell y LISP.

Haskell: Es un lenguaje de programacin estandarizado multi-propsito


puramente funcional con semnticas no estrictas y fuerte tipificacin esttica.
Entre sus caractersticas se incluyen el soporte para tipos de datos y
funciones recursivas, listas, tuplas, guardas y encaje de patrones.

LISP: Lenguaje de programacin funcional que significa List Processing y se


define como un lenguaje de manipulacin simblica que favorece la
realizacin de aplicaciones en inteligencia artificial.

Programacin lgica

Se basa en la definicin de reglas lgicas para luego, a travs de un motor de


inferencias lgicas, responder preguntas planteadas al sistema y as resolver los
problemas. Ej.: prolog.

PROLOG: Especifica cmo debe ser la solucin, en vez de dar el algoritmo


para su resolucin. La solucin se obtiene mediante bsqueda aplicando la
lgica de predicados. Est Orientado a la resolucin de problemas mediante
el clculo de predicados, basado en: preguntas a la base de datos y pruebas
matemticas.