Está en la página 1de 4

PROGRAMACIN MULTIPARADIGMA

Un lenguaje de programacin puede soportar distintos paradigmas de programacin con el


objetivo de que un programador utilice el ms conveniente a la hora de resolver un problema.

Ningn paradigma es capaz de resolver todos los problemas de forma sencilla y eficiente, por lo
tanto es til poder elegir entre distintos estilos de programacin dependiendo del tipo de
problema. Tambin hay lenguajes que permiten mezclar los paradigmas que, en principio,
pareceran irreconciliables. Se debe aclarar que hay subparadigmas que se incluyen en paradigmas
ms generales, pero hay otros que utilizan mtodos de programacin totalmente distintos entre s
e igualmente hay lenguajes que los combinan. Por ejemplo, el lenguaje Oz emplea programacin
lgica, funcional, orientada a objeto y otras.

Lenguajes como Delphi, C++ y Visual Basic combinan el paradigma imperativo, el procedural y el
orientado a objetos.

Incluso lenguajes ms puros en sus paradigmas como Prolog (paradigma lgico) o Scheme
(paradigma funcional) poseen estructuras iterativas tpicas de los lenguajes de paradigma
imperativo.

TIPOS DE PARADIGMAS

Paradigma imperativo

Generalmente el cdigo maquina, describe una programacin como un flujo de instrucciones o


comandos que van formando la estructura del software.

Es un paradigma de programacin que describe la programacin en trminos del estado del


programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de
instrucciones que le indican al computador cmo realizar una tarea.

La implementacin de hardware de la mayora de computadores es imperativa; prcticamente


todo el hardware de los computadores est diseado para ejecutar cdigo de mquina, que es
nativo al computador, escrito en una forma imperativa. Esto se debe a que el hardware de los
computadores implementa el paradigma de las Mquinas de Turing. Desde esta perspectiva de
bajo nivel, el estilo del programa est definido por los contenidos de la memoria, y las sentencias
son instrucciones en el lenguaje de mquina nativo del computador (por ejemplo el lenguaje
ensamblador).

Los lenguajes imperativos de alto nivel usan variables y sentencias ms complejas, pero an siguen
el mismo paradigma. Las recetas y las listas de revisin de procesos, a pesar de no ser programas
de computadora, son tambin conceptos familiares similares en estilo a la programacin
imperativa; cada paso es una instruccin, y el mundo fsico guarda el estado (Zoom).
Paradigma funcional

Este tipo de paradigma demuestra un tipo de programacin en forma de funciones matemticas.


Los lenguajes puramente funcionales evitan efectos secundarios que pueden ser comunes en
otros tipos de paradigmas.

El objetivo es conseguir lenguajes expresivos y matemticamente elegantes, en los que no sea


necesario bajar al nivel de la mquina para describir el proceso llevado a cabo por el programa, y
evitando el concepto de estado

del cmputo. La secuencia de computaciones llevadas a cabo por el programa se regira nica y
exclusivamente por la reescritura de definiciones ms amplias a otras cada vez ms concretas y
definidas, usando lo que se denominan "definiciones dirigidas".

Paradigma lgico

Se definen reglas lgicas que luego a trabes de un motor de inferencias lgicas, resolver
problemas planteados por el sistema. Algunos programas que utilizan el paradigma lgico: prolog.

Hay muchos ms paradigmas de programacin y cada uno de ellos posee sus ventajas y
desventajas, sin embargo sea el paradigma que elijamos podremos resolver todos los problemas
por caminos diferentes a los dems.

Paradigma orientado a Objetos

Este tipo de programacin posee como idea principal encapsular estado y operaciones en objetos.
Estos objetos pueden comunicarse entre si, poseen clases y herencia. Se puede destacar como
ventaja la facilidad de reutilizacin de cdigo. Algn ejemplo de algunos lenguajes orientados a
objetos pueden ser: Simula, Smalltalk, C++, Java, Visual Basic .NET, etc.

Paradigma estructurado

Bsicamente el cdigo se divide en bloques, estructuras, que pueden o no comunicarse entre s.


Este software se controla con secuencia, seleccin e interaccin. Otorga una mejor comprensin
del cdigo y permite su reutilizacin de una forma ms fcil.

Paradigma de programacin guiada por eventos

Es un paradigma de programacin en el que tanto la estructura como la ejecucin de los


programas van determinados por los sucesos que ocurran en el sistema o que ellos mismos
provoquen.

Mientras que en la programacin secuencial es el programador el que define cul va a ser el flujo
del programa, en la programacin dirigida por eventos ser el propio usuario, o lo que sea que
est accionando el programa, el que dirija el flujo del programa.

Al comenzar la ejecucin del programa se llevarn a cabo las inicializaciones correspondiente y a


continuacin el programa quedar bloqueado hasta que se produzca algn evento.

Cuando alguno de estos eventos tenga lugar, el programa pasar a ejecutar el cdigo del
correspondiente manejador de evento.
Otros:

Computacin en nube

Por computacin en nube se entiende a aquella tecnologa que permite ofrecer servicios de
computacin a travs de Internet, de manera que todo aquello que puede ofrecer un sistema
informtico es ofrecido como servicio, al cual pueden a su vez acceder los usuarios sin que tengan
conocimientos en la gestin de los diversos recursos que utilizan.

Se puede concebir el cloud computing, especialmente desde un punto de vista algo ms tcnico,
como un modelo de aprovisionamiento rpido de recursos IT que potencia la prestacin de
servicios IT y servicios de negocio, facilitando a fin de cuentas la operativa del usuario final y del
prestador del servicio.

Paradigma declarativo

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.

Programacin Orientada a Aspectos

La Programacin Orientada a Aspectos (POA) es un paradigma de programacin relativamente


reciente cuya intencin es permitir una adecuada modularizacin de las aplicaciones y posibilitar
una mejor separacin de conceptos. Gracias a la POA se pueden encapsular los diferentes
conceptos que componen una aplicacin en entidades bien definidas, eliminando las
dependencias entre cada uno de los mdulos. De esta forma se consigue razonar mejor sobre los
conceptos, se elimina la dispersin del cdigo y las implementaciones resultan ms comprensibles,
adaptables y reusables. Varias tecnologas con nombres diferentes se encaminan a la consecucin
de los mismos objetivos y as, el trmino POA es usado para referirse a varias tecnologas
relacionadas como los mtodos adaptivos, los filtros de composicin, la programacin orientada a
sujetos o la separacin multidimensional de competencias.

Programacin con restricciones

Es un paradigma de la programacin en informtica, donde las relaciones entre las variables son
expresadas en trminos de restricciones (ecuaciones). Actualmente es usada como una tecnologa
de software para la descripcin y resolucin de problemas combinatorios particularmente difciles,
especialmente en las reas de planificacin y programacin de tareas (calendarizacin).

Este paradigma representa uno de los desarrollos ms fascinantes en los lenguajes de


programacin desde 1990 y no es sorprendente que recientemente haya sido identificada por la
ACM (Asociacin de Maquinaria Computacional) como una direccin estratgica en la
investigacin en computacin.
Se trata de un paradigma de programacin basado en la especificacin de un conjunto de
restricciones, las cuales deben ser satisfechas por cualquier solucin del problema planteado, en
lugar de especificar los pasos para obtener dicha solucin.

La programacin con restricciones se relaciona mucho con la programacin lgica y con la


investigacin operativa. De hecho cualquier programa lgico puede ser traducido en un programa
con restricciones y viceversa. Muchas veces los programas lgicos son traducidos a programas con
restricciones debido a que la solucin es ms eficiente que su contraparte.

La diferencia entre ambos radica principalmente en sus estilos y enfoques en el modelado del
mundo. Para ciertos problemas es ms natural (y por ende ms simple) escribirlos como
programas lgicos, mientras que en otros es ms natural escribirlos como programas con
restricciones.

El enfoque de la programacin con restricciones se basa principalmente en buscar un estado en el


cual una gran cantidad de restricciones sean satisfechas simultneamente. Un problema se define
tpicamente como un estado de la realidad en el cual existe un nmero de variables con valor
desconocido. Un programa basado en restricciones busca dichos valores para todas las variables.

CONCLUSIONES

Los paradigmas juegan un papel importante en el mundo de la programacin ya que a travs de


esta nos podemos hacer planteamientos para desarrollar un software.

Nos estructuran nuestra programacin y nos dicen cmo resolver el problemas si a travs de
sentencias lgicas o matemticas.

Tambin ahora se pueden comprender mejor las diferentes definiciones de cada tipo de
paradigmas. Los lenguajes de programacin a veces pueden tener influencias de otros tipos de
paradigmas.