Está en la página 1de 10

El paradigma de la programacin visual

Eugenio Jacobo Hernndez Valdelamar & Humberto Manuel Uribe Len

Fundacin Arturo Rosenblueth. Insurgentes Sur 670-3. Colonia del Valle.


CP 03100. Mxico, D.F, Mxico.
jack@mail.rosenblueth.mx
jack_hv@yahoo.com
humbertouribe@yahoo.com

Resumen. Por mucho tiempo los desarrolladores de software han hecho su


trabajo usando lenguajes textuales de programacin, pero eso est a punto de
cambiar. en este artculo se presenta el paradigma de la programacin visual y
los lenguajes visuales de programacin como una alternativa para mejorar la
produccin de aplicaciones de software.
Palabras clave: programacin visual, lenguajes de programacin visual.

1. Qu es la programacin visual?
El concepto de programacin visual es un poco confuso ya que actualmente se le
considera programacin visual a los lenguajes de programacin textual que tienen una
interfaz grfica para poder visualizar lo que uno esta desarrollando. Este concepto en
programacin visual es errneo ya que este es aquel que por medio de iconos puedes ir
creando programas sin tener un lenguaje textual atrs de el.
La programacin visual (visual programming) se refiere al desarrollo de software
donde las notaciones grficas y los componentes de software manipulables
interactivamente son usados principalmente para definir y componer programas.
La programacin visual se define comnmente como el uso de expresiones visuales
(tales como grficos, animacin o iconos) en el proceso de la programacin, pueden
ser utilizadas para formar la sintaxis de los nuevos lenguajes de programacin visuales
que conducen a los nuevos paradigmas tales como programacin por la demostracin;
o pueden ser utilizadas en las presentaciones grficas del comportamiento o de la
estructura de un programa.
El objetivo de la programacin visual es mejorar la comprensin de los programas y
simplificar la programacin en s. Ms all, la programacin visual deber fomentar a
los usuarios finales a construir sus propios programas, que de otra forma deben ser
escritos por programadores profesionales.

2. Lenguajes de programacin visual


La programacin visual se basa en el uso de lenguajes visuales (LVP). Un lenguaje de
programacin visual puede definirse como:
Un lenguaje de programacin que usa una representacin visual (tal como
grficos, dibujos, animaciones o iconos, parcial o completamente).
Un lenguaje visual manipula informacin visual o soporta interaccin
visual, o permite programar con expresiones visuales.
Un lenguaje visual es un conjunto de arreglos espaciales de smbolos de
texto y grficos con una interpretacin semntica que es usada para
comunicar acciones en un ambiente.
Los LVPs son lenguajes de programacin donde se usan tcnicas visuales
para expresar relaciones o transformaciones en la informacin.
Por ejemplo, un objeto visual que representa un proceso de adicin (suma) toma dos
entradas y produce una salida. En un LVP tpico de flujo de datos, el usuario
simplemente selecciona un valor de entrada y selecciona un puerto de entrada al objeto
para establecer una relacin entre los datos y el proceso.
El gnesis de los LPV vino en 1975 con la publicacin de David Canfield Smith
Pygmalion: A Creative Programming Environment''. Por ejemplo, Pygmalion
incorpor un paradigma de programacin basado en iconos en el cual los objetos
creados podan ser modificados, y conectados juntos, con las caractersticas definidas
para realizar cmputos.
Muchos LPV modernos emplean un acercamiento basado en iconos como el de
Smith. Pygmalion tambin hizo uso el concepto de programacin por ejemplo, en
donde el usuario muestra al sistema cmo realizar una tarea en un caso especfico y el
sistema utiliza esta informacin para generar un programa el cul realiza la tarea en
casos generales.
Por qu insistimos en comunicarnos con las computadoras usando lenguajes de
programacin textuales? No sera mejor comunicarnos con las computadoras usando
una representacin que aproveche nuestra naturaleza visual?
Obviamente, los autores de los lenguajes de programacin visuales (LPV) discuten
que la respuesta a ambas preguntas es s. Las principales motivaciones para la mayora
de la investigacin en LPV son:
Mucha gente piensa y recuerda cosas en trminos de cuadros.
Ella se relaciona con el mundo de una manera intrnsecamente grfica y
utiliza imgenes como componente primario del pensamiento creativo.

Adems, los lenguajes de programacin textuales han demostrado ser


algo difciles para que mucha gente creativa e inteligente aprenda utilizar
con eficacia.
La reduccin o eliminacin de la necesidad de traducir ideas visuales en
representaciones textuales puede ayudar a atenuar este problema de la
curva del aprendizaje.
Adems, una variedad de aplicaciones, incluyendo la visualizacin
cientfica y la simulacin interactiva se prestan bien a los mtodos
visuales de desarrollo.
Un LPV NO es un ambiente integrado de desarrollo (o IDE). La diferencia es que
un VPL debe ser capaz de llevar a cabo todas las tareas de programacin de forma
visual, sin tener que recurrir a la representacin textual.

3. Clasificacin de los lenguajes visuales


Los lenguajes visuales se dividen en las siguientes categoras:

Lenguajes puramente visuales

Sistemas hbridos de texto y elementos visuales

Sistema de programacin por ejemplo (Programming-by-example)

Sistemas orientados a restricciones (Constraint-oriented systems)

Sistemas basados en formas (entradas tipo hoja de clculo animada)

Aunque los LPVs comunican la informacin de una manera ms visual que los
lenguajes textuales tradicionales, el texto an tiene su lugar en la programacin visual.
Hay 3 reas que ilustran la superioridad del texto en algunas situaciones:

documentacin,

asignar nombres para distinguir entre elementos de un mismo tipo, y

expresar conceptos bien conocidos y compactos que son inherentemente


textuales (p.ej. frmulas algebraicas)

Fig. 1. Ejemplos de herramientas de programacin visual

4. Principales conceptos de los lenguajes visuales


Los principales conceptos relativos a los lenguajes visuales son:

Abstraccin procedural (descomposicin del programa en mdulos)

Abstraccin de datos, consiste en encapsular los tipos de datos abstractos


definidos por el usuario, permitiendo su acceso solo por medio de operaciones
definidas.

Sistema de tipos

Control de flujo

Estructuras de control (seleccin, iteracin)

Formatos y estndares. Se refiere a la definicin de reglas que permitan


especificar los elementos del LPV (p.ej. GXL, XGMML, GML)

Gramticas de lenguajes visuales. Los lenguajes visuales se especifican por


una tripleta (ID,G,B), donde :

ID es el diccionario de iconos, el cual es un conjunto de iconos


generalizados, cada uno representado por un par (Xm,Xi) , donde Xm es
la parte lgica (significado) y Xi es la parte fsica (imagen).

G es una gramtica que especifica como pueden construirse objetos


compuestos a partir de iconos simples usando operadores de relacin
espaciales.

B es una base de conocimiento de dominio especfico, la cual contiene la


informacin necesaria para construir el significado de la sentencia visual
(nombres de eventos, relaciones, referencias a los objetos, etc).

5. Caso de estudio: Implementacin de una neurona artificial con


Sanscript
Para demostrar el uso de un LPV, se realiz el desarrollo de una neurona artificial (NA)
usando la herramienta Sanscript. Cabe mencionar que Sanscript implementa las
siguientes abstracciones fundamentales:

Funciones, que son los bloques con los que se construyen las aplicaciones en
Sanscript. Una funcin tiene entradas, ejecuta un clculo y produce salidas.

Flujogramas (flowgrams), que son diagramas de funciones ligadas con


funciones donde se especifica una accin (equivalentes al un programa
textual, solo que visual).

Conexiones, que son los vnculos (relaciones) entre funciones

Aplicaciones, que son programas que se ejecutan fuera de la herramienta

Fig. 2. Elementos de programacin de Sanscript

Una neurona artificial consta bsicamente de 4 partes, que son:

Las entradas

Los pesos

Una funcin que calcula la suma ponderada de los pesos y las entradas

La funcin de transferencia

La neurona artificial implementada solo tiene 2 entradas y una salida, pero el modelo
puede ampliarse fcilmente.

Fig. 3. "Flujograma" del modelo de una neurona artificial

Cada una de estas partes se implement de la siguiente manera:


1.

Lista de entradas. Debido a que podemos tener N entradas en la neurona lo


ms conveniente es tener una lista para que tengamos las entradas en una sola
estructura de datos y poder obtener de esa estructura los valores para realizar
la suma de los pesos por las entradas.

2.

Lista de pesos. Como debe tenerse la misma cantidad de entradas que de pesos
para poder realizar la suma ponderada, hay que contar con una estructura de
datos igual a la de las entradas, pero ahora con los pesos.

Fig. 4. Estructuras para las entradas y pesos de la NA

3.

Suma Ponderada. Para hacer la suma ponderada tenemos que tener la longitud
de nuestras listas para saber cuantas veces vamos a realizar el ciclo, como las
dos listas son de la misma longitud solamente hacemos este paso con la lista
de entradas.

Fig. 5. Integracin de las listas de pesos al mdulo de suma ponderada

El iterador obtiene de la lista de entradas y de salidas el valor en la posicin N de las


listas que son f, g, los multiplica f * g y los va sumando. El ciclo termina cuando ya no
hay elementos en la lista. En la implementacin del caso del ejemplo hay 2 elementos
en cada una de las listas, pero se pueden tener N elementos.

Fig. 6. Implementacin de la operacin de suma ponderada

4.

Funcin de Transferencia. La funcin de transferencia hace la comparacin


entre el resultado del iterador (suma ponderada) y el umbral de la neurona; si
el resultado del ciclo es mayor al del umbral, la neurona dispara; si el
resultado del ciclo es menor entonces la neurona se inhibe (manda como valor
un 0).

Fig. 7. El componente de funcin de transferencia y su implementacin

As, al integrar una red de neuronas artificiales, las salidas (axones) de cada una de
las neuronas, se convertir en entradas de otras.

Fig. 8. Comparacin entre el diagrama de la NA y el flujograma

6. Conclusiones.
Algunas de las perspectivas en el desarrollo de la programacin visual son:

Complemento de IDEs (p.ej. Visual Age)

Construccin de aplicaciones sobre una plataforma nativa (ej. Sanscript)

Generacin de cdigo (de la representacin visual a un lenguaje textual)

Fusin con lenguajes de modelado (UML + SDL)

Integracin de recursos multimedia a las aplicaciones (PeriProducer,


StagecastCreator)

Creacin de sistemas de agentes (AgentSheet)

El desarrollo de lenguajes visuales de programacin implicar que los codificadores


pierdan su hegemona en el desarrollo de software, lo cual es sano si se toma en cuenta
que tener un experto en la sintaxis de un lenguaje y en el uso de herramientas de
desarrollo, dista mucho de que sea capaz de resolver problemas mediante el uso de
recursos de cmputo y sistemas informticos. As que los verdaderos programadores
pueden estar tranquilos, pues podrn mejorar su efectividad y productividad con
herramientas que les permitan mejorar la proyeccin de sus modelos mentales y
soluciones a problemas dados (herramientas de 5a. generacin [1]).
Que los usuarios incursionen en el desarrollo es sano pues por fin comprendern que
los requerimientos inexactos o ambiguos son un factor que fomenta los dolores de
cabeza y el atraso de los proyectos, adems de que al obtener cierta independencia,
mejorar el nivel de comunicacin con desarrolladores profesionales.
Vale la pena responder por adelantado a la pregunta de muchos programadores:
"me sirven los conocimientos que ya tengo o hay que empezar de nuevo?". Manejar
lenguajes visuales implica para empezar, conocer la sintaxis del lenguaje (esto es una
constante), pero a partir de este punto los beneficios son muchos:

se cuenta con una herramienta de integracin de componentes robusta

la representacin de los mdulos, subsistemas y sistemas es comprensible para


todos los miembros del equipo

las miniespecificaciones de diseo se fusionan con la implementacin

dependiendo de la herramienta es posible reusar componentes de plataformas


disponibles en el mercado

el aprendizaje de tcnicas de programacin es ms rpido y claro

Este nuevo paradigma es un medio excelente para ensear a programar y resolver


problemas, por lo que se sugiere su adopcin en los niveles formativos de educacin.

Referencias
[1]
The
myth
of
code-centricity.
Jack
Harich.
http://www.javaworld.com/javaworld/jw-08-2001/jw-0824-myth_p.html
[2] Visual Programming

http://www-lsi.upc.es/~rbaeza/cursos/vp/todo.html
[3] Visual Programming Languages
http://www.cs.washington.edu/homes/jpower/vpl/vpl_home.html
[4] Visual Programming - Foundations and Applications
http://www.swe.uni-linz.ac.at/research/visual_programming.html
[5] International Telecommunication Union recommendation Z.109 SDL
combined with UML
http://www.itu.int/itu-doc/itu-t/rec/z/index.html
[6] OMG RFC Action semantics for the UML" 11/1999
http://www.omg.org
[7] OMG RFC UML 2.0 superstructure 9/2000
http://www.omg.org

También podría gustarte