Anda di halaman 1dari 5

Tipos de paradigmas de programacin

Programacin Imperativa

La programacin imperativa, en contraposicin a la programacin declarativa 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).

Los primeros lenguajes imperativos fueron los lenguajes de mquina de los computadores
originales. En estos lenguajes, las instrucciones fueron muy simples, lo cual hizo la
implementacin de hardware fcil, pero obstruyendo la creacin de programas complejos.
Fortran, cuyo desarrollo fue iniciado en 1954 por John Backus en IBM, fue el primer gran lenguaje
de programacin en superar los obstculos presentados por el cdigo de mquina en la creacin
de programas complejos.

Programacin lgica

La programacin lgica consiste en la aplicacin del corpus de conocimiento sobre lgica para
el diseo de lenguajes de programacin; no debe confundirse con la disciplina de la lgica
computacional.

La programacin lgica es un tipo de paradigmas de programacin dentro del paradigma de


programacin declarativa. El resto de los subparadigmas de programacin dentro de la
programacin declarativa son: programacin funcional, programacin basada en restricciones,
programas DSL (de dominio especfico) e hbridos. La programacin lgica gira en torno al
concepto de predicado, o relacin entre elementos. La programacin funcional se basa en el
concepto de funcin (que no es ms que una evolucin de los predicados), de corte ms
matemtico.

Programacin funcional

En ciencias de la computacin, la programacin funcional es un paradigma de


programacin declarativa basado en la utilizacin de funciones aritmticas que no maneja datos
mutables o de estado. Enfatiza la aplicacin de funciones, en contraste con el estilo de
programacin imperativa, que enfatiza los cambios de estado. La programacin funcional tiene
sus races en el clculo lambda, un sistema formal desarrollado en los 1930s para investigar la
definicin de funcin, la aplicacin de las funciones y la recursin. Muchos lenguajes de
programacin funcionales pueden ser vistos como elaboraciones del clculo lambda.

Los lenguajes de programacin funcional, especialmente los que son puramente


funcionales, han sido enfatizados en el ambiente acadmico principalmente y no tanto en el
desarrollo de software comercial. Sin embargo, lenguajes de programacin importantes tales
como Scheme, Erlang, Objective Caml y Haskel, han sido utilizados en aplicaciones comerciales
e industriales por muchas organizaciones. La programacin funcional tambin es utilizada en la
industria a travs de lenguajes de dominio especfico como R (estadstica), Mathematica
(matemticas simblicas), J y K (anlisis financiero), F# en Microsoft.NET y XSLT (XML).
Lenguajes de uso especfico usados comnmente como SQL y Lex/Yacc, utilizan algunos
elementos de programacin funcional, especialmente al procesar valores mutables. Las hojas de
clculo tambin pueden ser consideradas lenguajes de programacin funcional.

La programacin funcional tambin puede ser desarrollada en lenguajes que no estn


diseados especficamente para la programacin funcional. En el caso de Perl, por ejemplo, que
es un lenguaje de programacin imperativo, existe un libro que describe cmo aplicar conceptos
de programacin funcional. JavaScript, uno de los lenguajes ms ampliamente utilizados en la
actualidad, tambin incorpora capacidades de programacin funcional.

Programacin declarativa

La Programacin Declarativa, es un paradigma de programacin que est basado en el


desarrollo de programas especificando o "declarando" un conjunto de condiciones,
proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el
problema y detallan su solucin. La solucin es obtenida mediante mecanismos internos de
control, sin especificar exactamente cmo encontrarla (tan slo se le indica a la computadora
que es lo que se desea obtener o que es lo que se est buscando). No existen asignaciones
destructivas, y las variables son utilizadas con Transparencia referencial

Programacin estructurada

La programacin estructurada es una forma de escribir programas de ordenador (programacin


de computadora) de manera clara. Para ello utiliza nicamente tres estructuras: secuencia,
seleccin e iteracin; siendo innecesario el uso de la instruccin o instrucciones de transferencia
incondicional (GOTO, EXIT FUNCTION, EXIT SUB o mltiples RETURN).

Programacin dirigida por eventos

La programacin dirigida 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, definidos por el usuario o que ellos mismos provoquen.

Para entender la programacin dirigida por eventos, podemos oponerla a lo que no es: mientras
en la programacin secuencial (o estructurada) 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. Aunque en la programacin
secuencial puede haber intervencin de un agente externo al programa, estas intervenciones
ocurrirn cuando el programador lo haya determinado, y no en cualquier momento como puede
ser en el caso de la programacin dirigida por eventos.

El creador de un programa dirigido por eventos debe definir los eventos que manejarn su
programa y las acciones que se realizarn al producirse cada uno de ellos, lo que se conoce
como el administrador de evento. Los eventos soportados estarn determinados por el lenguaje
de programacin utilizado, por el sistema operativo e incluso por eventos creados por el mismo
programador.

En la programacin dirigida por eventos, al comenzar la ejecucin del programa se llevarn a


cabo las inicializaciones y dems cdigo inicial y a continuacin el programa quedar bloqueado
hasta que se produzca algn evento. Cuando alguno de los eventos esperados por el programa
tenga lugar, el programa pasar a ejecutar el cdigo del correspondiente administrador de
evento. Por ejemplo, si el evento consiste en que el usuario ha hecho click en el botn de play
de un reproductor de pelculas, se ejecutar el cdigo del administrador de evento, que ser el
que haga que la pelcula se muestre por pantalla.

Un ejemplo claro lo tenemos en los sistemas de programacin Lxico y Visual Basic, en los que
a cada elemento del programa (objetos, controles, etctera) se le asignan una serie de eventos
que generar dicho elemento, como la pulsacin de un botn del ratn sobre l o el redibujado
del control.

La programacin dirigida por eventos es la base de lo que llamamos interfaz de usuario, aunque
puede emplearse para desarrollar interfaces entre componentes de Software como mdulos del
ncleo tambin.

En los primeros tiempos de la computacin, los programas eran secuenciales, tambin llamados
Batch. Un programa secuencial arranca, lee parmetros de entrada, procesa estos parmetros,
y produce un resultado, todo de manera lineal y sin intervencin del usuario mientras se ejecuta.

Con la aparicin y popularizacin de los pc, el software empez a ser demandado para usos
alejados de los clsicos acadmicos y empresariales para los cuales era necesitado hasta
entonces, y qued patente que el paradigma clsico de programacin no poda responder a las
nuevas necesidades de interaccin con el usuario que surgieron a raz de este hecho...

Programacin modular

La programacin modular es un paradigma de programacin que consiste en dividir un programa


en mdulos o subprogramas con el fin de hacerlo ms legible y manejable.

Se presenta histricamente como una evolucin de la programacin estructurada para solucionar


problemas de programacin ms grandes y complejos de lo que sta puede resolver.

Al aplicar la programacin modular, un problema complejo debe ser dividido en varios


subproblemas ms simples, y estos a su vez en otros subproblemas ms simples. Esto debe
hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos
fcilmente con algn lenguaje de programacin. sta tcnica se llama refinamiento sucesivo,
divide y vencers anlisis descendente (Top-Down).

Un mdulo es cada una de las partes de un programa que resuelve uno de los
subproblemas en que se divide el problema complejo original. Cada uno de estos mdulos tiene
una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un
mdulo necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin
que tambin debe estar bien definida.

Si bien un mdulo puede entenderse como una parte de un programa en cualquiera de


sus formas y variados contextos, en la prctica es comn representarlos con procedimientos y
funciones. Adicionalmente, tambin pueden considerarse mdulos las libreras que pueden
incluirse en un programa o, en programacin orientada a objetos, la implementacin de un tipo
de dato abstracto.

Programacin orientada a objetos

La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un paradigma
de programacin que usa objetos y sus interacciones, para disear aplicaciones y programas
informticos. Est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y
encapsulamiento. Su uso se populariz a principios de la dcada de los aos 1990. En la
actualidad, existe variedad de lenguajes de programacin que soportan la orientacin a objetos.

Programacin con restricciones

La 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.

Algunos dominios de aplicacin de este paradigma son:

Dominios booleanos, donde solo existen restricciones del tipo verdadero/falso.


Dominios en variables enteras y racionales.

Dominios lineales, donde slo se describen y analizan funciones lineales.

Dominios finitos, donde las restricciones son definidas en conjuntos finitos.

Dominios mixtos, los cuales involucran dos o ms de los anteriores.

Anda mungkin juga menyukai