Anda di halaman 1dari 3

Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una

comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que


nicamente trata de resolver uno o varios problemas claramente delimitados. Es un estilo de
programacin empleado. La resolucin de estos problemas debe suponer consecuentemente
un avance significativo en al menos un parmetro que afecte a la ingeniera de software. Tiene
una estrecha relacin con la formalizacin de determinados lenguajes en su momento de
definicin. Un paradigma de programacin est delimitado en el tiempo en cuanto a aceptacin
y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen
parcial o totalmente.
El paradigma de programacin que actualmente es el ms usado es la orientacin a objetos. El
ncleo central de este paradigma es la unin de datos y procesamiento en una entidad llamada
"objeto", relacionable a su vez con otras entidades "objeto".
Tradicionalmente datos y procesamiento se han separado en reas diferente del diseo y la
implementacin de software. Esto provoc que grandes desarrollos tuvieran problemas de
fiabilidad, mantenimiento, adaptacin a los cambios y escalabilidad. Con la orientacin a
objetos y caractersticas como el encapsulado, polimorfismo o la herencia se permiti un
avance significativo en el desarrollo de software a cualquier escala de produccin.
La orientacin a objeto parece estar ligada en sus orgenes con lenguajes como Lisp y Simula
aunque el primero que acu el ttulo de programacin orientada a objetos fue Smalltalk.


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; donde cada paso es una instruccin.
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.


En ciencias de la computacin, la programacin funcional es un paradigma de
programacin declarativa basado en la utilizacin defunciones aritmticas que no maneja datos
mutables o de estado. Enfatiza la aplicacin de funciones, en contraste con el estilo
deprogramacin 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.
En la prctica, la diferencia entre una funcin matemtica y la nocin de una "funcin" utilizada
en la programacin imperativa es que las funciones imperativas pueden tener efectos
secundarios, al cambiar el valor de clculos realizados previamente. Por esta razn carecen de
transparencia referencial, es decir, la misma expresin sintctica puede resultar en valores
diferentes en diferentes momentos dependiendo del estado del programa siendo ejecutado.
Con cdigo funcional, en contraste, el valor generado por una funcin depende exclusivamente
de los argumentos alimentados a la funcin. Al eliminar los efectos secundarios se puede
entender y predecir el comportamiento de un programa mucho ms fcilmente, y esta es una
de las principales motivaciones para utilizar la programacin funcional.
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, Rust, Objective Caml y Haskell, 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 como aplicar
conceptos de programacin funcional. JavaScript, uno de los lenguajes ms ampliamente
utilizados en la actualidad, tambin incorpora capacidades de programacin
funcional. Python tambin incorpora particularidades de los lenguajes funcionales como listas
de comprensin y funciones de tratamiento de listas como matemtica de conjuntos.


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 con restricciones,
programas DSL (de dominio especfico) e hbridos. La programacin funcional se basa en el
concepto de funcin (que no es ms que una evolucin de los predicados), de corte ms
matemtico. La programacin lgica gira en torno al concepto de predicado, o relacin entre
elementos.

La Programacin Declarativa, en contraposicin a la programacin imperativa 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 qu es lo que se desea obtener o qu es lo
que se est buscando). No existen asignaciones destructivas, y las variables son utilizadas
con Transparencia referencial

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

En informtica, la programacin dinmica es un mtodo para reducir el tiempo de ejecucin
de un algoritmo mediante la utilizacin de subproblemas superpuestos ysubestructuras
ptimas, como se describe a continuacin.
El matemtico Richard Bellman invent la programacin dinmica en 1953 que se utiliza para
optimizar problemas complejos que pueden ser discretizados y secuencializados

Anda mungkin juga menyukai