Introducción a Programación Avanzada
1.1 Paradigma de Programación Visual
¿A qué se refiere?
Un paradigma de programación provee (y determina) la visión y métodos de un
programador en la construcción de un programa.
Diferentes paradigmas resultan en diferentes estilos de programación y en diferentes
formas de pensar la solución de problemas.
Figura: Ejemplo de programación textual
Clasificación por paradigmas de programación:
a) Paradigma Imperativo: describe la programación como una secuencia
instrucciones o comandos que cambian el estado de un programa. El código
máquina en general está basado en el paradigma imperativo. Su contrario es el
paradigma declarativo.
Figura: Paradigma Imperativo
Introducción a Programación Avanzada
b) Paradigma Declarativo: No se basa en el cómo se hace algo (cómo se logra
un objetivo paso a paso), sino que describe (declara) cómo es algo. En otras
palabras, se enfoca en describir las propiedades de la solución buscada,
dejando indeterminado el algoritmo (conjunto de instrucciones) usado para
encontrar esa solución. Es más complicado de implementar que el paradigma
imperativo, tiene desventajas en la eficiencia, pero ventajas en la solución de
determinados problemas.
Figura: Paradigma Declarativo
c) Paradigma Estructurado: la programación se divide en bloques
(procedimientos y funciones) que pueden o no comunicarse entre sí.
Además, la programación se controla con secuencia, selección e iteración. Permite
reutilizar código programado y otorga una mejor compresión de la programación.
Figura: Paradigma Estructurado
Introducción a Programación Avanzada
d) Paradigma Orientado a Objetos: está basado en la idea de encapsular estado
y operaciones en objetos. En general, la programación se resuelve
comunicando dichos objetos a través de mensajes.
Su principal ventaja es la reutilización de códigos y su facilidad para pensar soluciones
a determinados problemas.
Figura: Paradigma Orientado a Objetos
e) Paradigma Funcional: este paradigma concibe a la computación como la
evaluación de funciones matemáticas y evita declarar y cambiar datos. En otras
palabras, hace hincapié en la aplicación de las funciones y composición entre
ellas, más que en los cambios de estados y la ejecución secuencial de
comandos.
Figura: Paradigma Funcional
Introducción a Programación Avanzada
f) Paradigma Lógico: se basa en la definición de reglas lógicas para luego, a
través de un motor de inferencias lógicas, responder preguntas planteadas al
sistema y así resolver los problemas.
Figura: Paradigma Lógico
Otros paradigmas y sub paradigmas son: paradigma orientado al sujeto, paradigma
reflectante, programación basada en reglas, paradigma basado en restricciones,
programación basada en prototipos, paradigma orientado a aspectos, etc.
Programación visual
Es aquel que por medio de iconos puedes ir creando programas sin tener un lenguaje
textual atrás de él.
Figura: Ejemplo de programación visual
Introducción a Programación Avanzada
La programación visual (visual programing) se refiere al desarrollo de software donde
las notaciones gráficas y los componentes de software manipulables interactivamente
son usados principalmente para definir y componer programas.
Figura: Bloques
El objetivo de la programación visual es mejorar la comprensión de los programas y
simplificar la programación en sí. Más allá, la programación visual deberá fomentar a
los usuarios finales a construir sus propios programas, que de otra forma deben ser
escritos por programadores profesionales.
Figura: Programación visual de carrito
Por ejemplo, un objeto visual que representa un proceso de adición (suma) toma dos
entradas y produce una salida.
Introducción a Programación Avanzada
En un LVP típico de flujo de datos, el usuario simplemente selecciona un valor de
entrada y selecciona un puerto de entrada al objeto para establecer una relación entre
los datos y el proceso.
Figura: Sumatoria por bloques
El inicio de los LPV vino en 1975 con la publicación de David Canfield Smith
“Pygmalion: A Creative Programming Environment''.
Por ejemplo, Pygmalion incorporó un paradigma de programación basado en iconos
en el cual los objetos creados podían ser modificados, y conectados juntos, con las
características definidas para realizar cómputos.
Figura: Software Pygmailion
¿Por qué insistimos en comunicarnos con las computadoras usando lenguajes de
programación textuales? ¿No sería mejor comunicarnos con las computadoras usando
una representación que aproveche nuestra naturaleza visual?
Introducción a Programación Avanzada
Categorías
Lenguajes puramente visuales
Sistemas híbridos de texto y elementos visuales
Sistema de programación por ejemplo (Programming-by-example)
Sistemas orientados a restricciones (Constraint-oriented systems)
Sistemas basados en formas (entradas tipo “hoja de cálculo” animada)
Aunque los LPVs comunican la información de una manera más visual que los
lenguajes textuales tradicionales, el texto aún tiene su lugar en la programación visual.
Hay 3 áreas que ilustran la superioridad del texto en algunas situaciones:
Documentación
Asignar nombres para distinguir entre elementos de un mismo tipo
Expresar conceptos bien conocidos y compactos que son inherentemente
textuales ([Link]. fórmulas algebraicas).
Bibliografía:
Tymoschuk, J. (2009). Paradigmas de Programación. ----: ----. p.1