Sunteți pe pagina 1din 3

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS

INGENIERIA DE SISTEMAS

MODELOS DE PROGRAMACION II

Diego Alonso Galeano Herrera 20172020074

Programación imperativa: el paradigma de programación más antiguo


Se trate del desarrollo de una aplicación, de la programación de máquinas o del desarrollo de
un software de empresa, antes de escribir la primera línea de código, el desarrollador debe
decidir qué lenguaje de programación usar. La selección de los posibles lenguajes de
programación es muy amplia. Sin embargo, cada uno de ellos se puede clasificar en uno de los
dos paradigmas de programación: la programación imperativa y la programación declarativa.
Los dos enfoques tienen sus ventajas y sus inconvenientes.

¿Qué es la programación imperativa?


La programación imperativa (del latín imperare = ordenar) es el paradigma de programación
más antiguo. De acuerdo con este paradigma, un programa consiste en una secuencia
claramente definida de instrucciones para un ordenador.

El código fuente de los lenguajes imperativos encadena instrucciones una detrás de otra que
determinan lo que debe hacer el ordenador en cada momento para alcanzar un resultado
deseado. Los valores utilizados en las variables se modifican durante la ejecución del
programa. Para gestionar las instrucciones, se integran estructuras de control como bucles o
estructuras anidadas en el código.

Los lenguajes de programación imperativa son muy concretos y trabajan cerca del sistema. De
esta forma, el código es, por un lado, fácilmente comprensible, pero, por el otro, requiere
muchas líneas de texto fuente para describir lo que en los lenguajes de la programación
declarativa se consigue con solo una parte de las instrucciones.

Los lenguajes de programación imperativa más conocidos son:

Fortran C#

C++ Java

Pascal ALGOL
C Ensambladores

BASIC COBOL

Python Ruby

Los distintos lenguajes de programación imperativa pueden clasificarse a su vez en tres estilos
distintos de programación subordinados: el estructurado, el procedimental y el modular.

El estilo estructurado de programación amplía el principio imperativo central con las


estructuras concretas de control: secuencias, selección e iteración. Esto se hace para mitigar o
evitar por completo las instrucciones de salto que añaden una complejidad innecesaria al
código imperativo.

El enfoque procedimental divide las tareas de las que se debe ocupar un programa en tareas
parciales más pequeñas que se describen en el código por separado. De esta forma, se crean
principios básicos de programación que también se pueden reutilizar en otros programas.

Un paso más allá, en el modelo de programación modular, cada uno de los componentes de
programa se diseñan, desarrollan y prueban con total independencia los unos de los otros. No
es hasta el final del proceso cuando los módulos se combinan para conformar el software real.

Programación declarativa: cuando el qué es más importante que el cómo


Da igual que se trate de la programación de una aplicación, un software de IoT o un juego de
ordenador: antes de que los desarrolladores escriban las primeras líneas de código, deben
tomar una decisión fundamental: ¿qué lenguaje de programación van a utilizar? Existen
diversos lenguajes a su disposición, pero, si se contemplan con perspectiva, todos se basan en
dos paradigmas de programación fundamentales: la programación declarativa y la
programación imperativa.

¿Qué es la programación declarativa?


No hay consenso sobre la definición de este paradigma, pero todas las explicaciones coinciden
en algo: lo que destaca de los lenguajes de programación declarativa es que siempre se
describe el resultado final deseado, en lugar de mostrar todos los pasos de trabajo. Para
alcanzar el objetivo, en la programación declarativa se determina automáticamente la vía de
solución. Esto funciona siempre y cuando las especificaciones del estado final se definan
claramente y exista un procedimiento de ejecución adecuado. Si se dan las dos condiciones, la
programación declarativa es muy eficiente.

Como la programación declarativa no determina el “cómo”, sino que funciona a un nivel de


abstracción muy alto, este paradigma deja margen para la optimización. Si se ha desarrollado
un procedimiento de ejecución mejor, el algoritmo integrado lo encuentra y lo aplica. En este
sentido, el paradigma está muy preparado para el futuro porque, al escribir el código, no es
necesario determinar el procedimiento según el cual se alcanza el resultado.

Los lenguajes de programación declarativa más conocidos son:


Prolog Lisp

Haskell Miranda

Erlang SQL (en un sentido amplio)

Los distintos lenguajes declarativos se pueden subdividir, a su vez, en dos paradigmas, el de la


programación funcional y el de la programación lógica.

Sin embargo, es habitual que en la práctica los límites se difuminen y que, a la hora de
solucionar problemas, se apliquen tanto elementos de la programación imperativa, con sus
subtipos de programación procedimental, modular y estructurada, como de la programación
declarativa.

Programación imperativa vs declarativa


Los lenguajes de programación imperativa se distinguen de los lenguajes declarativos en un
aspecto básico: la programación imperativa se centra en el “cómo”, y la declarativa, en el
“qué”.

¿Qué queremos decir con esto? Los lenguajes de programación imperativa son como unas
instrucciones paso a paso (cómo) redactadas para el ordenador. Describen de forma explícita
qué pasos deben llevarse a cabo y en qué secuencia para alcanzar finalmente la solución
deseada. En la programación declarativa, en cambio, se describe directamente el resultado
final deseado (el qué).

Ejemplo 1: los lenguajes imperativos proporcionan la receta, mientras que los declarativos,
fotos del plato preparado.

Ejemplo 2: la construcción de muebles: mientras que la programación imperativa ofrece las


instrucciones de montaje, la programación declarativa ofrece una imagen del mueble ya
montado como muestra.

En lugar de dejar abierta la ejecución con funciones, en la programación imperativa existen


variables que se modifican durante el tiempo de ejecución. Esto hace que el código sea más
largo, pero también más fácil de entender que la forma abreviada y abstracta del lenguaje
declarativo.

En los lenguajes declarativos, el código fuente permanece muy abstracto en relación al


procedimiento concreto. Para llegar a la solución, se utiliza un algoritmo que encuentra y
utiliza automáticamente los métodos adecuados. Este procedimiento tiene numerosas
ventajas: de esta forma, los programas no solo se pueden escribir considerablemente más
rápido, sino que las aplicaciones se pueden optimizar también de forma muy sencilla, ya que, si
en el futuro se desarrolla un nuevo método, el algoritmo puede acceder fácilmente al método
nuevo gracias a la aplicación abstracta del código fuente.

Tomado de DIGITAL GUIDE:

https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/programacion-imperativa/

https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/programacion-declarativa/

S-ar putea să vă placă și