You are on page 1of 3

PARADIGMAS DE PROGRAMACION

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; donde
cada paso es una instruccin.
Son aquellos cuyos valores son atmicos y estn formados por elementos en un
caso especial.
Dentro de esta se encuentra
- La programacin orientado a objetos: Est basada en el imperativo, pero
encapsula elementos denominados objetos que incluyen tanto variables
como funciones. Est representado por C++ o el Java, pero el ms
representativo sera el Smalltalk que est completamente orientado a
objetos
- Programacin dinmica: Est definida como el proceso de romper
problemas en partes pequeas para analizarlos y resolverlos de forma
ms ptima, busca resolver problemas en O(n) sin usar por tanto mtodos
recursivos. Este paradigma est ms basado en el modo de realizar los
algoritmos, por lo que se puede usar con cualquier lenguaje imperativo.
Programacin declarativa

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
Dentro de esta se encuentra:
- Programacin funcional: Basada en la definicin los predicados y es de
corte ms matemtico, est representado por Scheme (una variante
de Lisp) o Haskell.
- Programacin lgica: Basado en la definicin de relaciones lgicas, est
representado por Prolog.
- Programacin con restricciones: Similar a la lgica usando ecuaciones.
Casi todos los lenguajes son variantes del Prolog.
Programacin multiparadigma
Un lenguaje de programacin multiparadigma es el que soporta ms de
un paradigma de programacin. Segn lo describe Bjarne Stroustrup, permiten
crear programas usando ms de un estilo de programacin.
El objetivo en el diseo de estos lenguajes es permitir a los programadores
utilizar el mejor paradigma para cada trabajo, admitiendo que ninguno resuelve
todos los problemas de la forma ms fcil y eficiente posible.
Por ejemplo, lenguajes de programacin como C++, Genie, Delphi, Visual
Basic o PHP, combinan el paradigma imperativo con la orientacin a objetos.
Incluso existen lenguajes multiparadigma que permiten la mezcla de forma
natural, como en el caso de Oz, que tiene subconjuntos (particularidad de
los lenguajes lgicos), y otras caractersticas propias de lenguajes
de programacin funcional y de orientacin a objetos. Otro ejemplo son los
lenguajes como Scheme (paradigma funcional) o Prolog (paradigma lgico), que
cuentan con estructuras repetitivas, propias del paradigma imperativo.
Lenguaje especifico de dominio
En desarrollo de software e ingeniera de dominio, un lenguaje especfico del
dominio (en ingls domain-specific language, DSL) es un lenguaje de
programacin o especificacin dedicado a resolver un problema en particular,
representar un problema especfico y proveer una tcnica para solucionar una
situacin particular. El concepto no es nuevo pero se ha vuelto ms popular
debido al aumento del uso de modelaje especfico del dominio.1
Ejemplos de lenguajes especficos del lenguaje incluyen, Logo para nios,
Verilog y VHSIC, R y S para estadsticas, Mata para programacin matricial,
Mathematica y Mxima para matemticas, frmulas de hojas de clculo y
macros, SQL para consultas a bases de datos relacionales, Yacc para
crear parseadores, expresiones regulares para crear anlisis lxico, Generic
Eclipse Modeling System para crear lenguajes con el objetivo de diagramar,
Csound un lenguaje para sntesis digital, y los lenguajes de entrada de GraphViz
y GrGen, paquetes de software usados para graficar y reescribir grficas.
Lo opuesto es:
- un lenguaje de programacin de propsito general, como por
ejemplo C o Java.
- o un lenguaje de modelaje de propsito general como UML.
Crear un lenguaje especfico del dominio (con software que lo soporte) vale la
pena cuando permite que un tipo particular de problemas o soluciones puedan
ser expresadas ms claramente que con otros lenguajes existentes, y el tipo de
problema en cuestin reaparece lo suficiente. La programacin orientada a
lenguajes considera la creacin de lenguajes especficos para expresar
problemas una parte estndar para el proceso de solucionar el problema.

You might also like