Post on 24-Jan-2016
Una Aproximación a los Ambientes Virtuales de Programación
Por Luis Raúl Mulato
Indice Introducción VLP vs TLP
Fortalezas de los VLP Debilidades de los VLP Argumentos para notación 3D
Aproximaciones: Cube
SAM - Solid Agent in Motion 3D-PP
Trabajos Relacionados VrPL Conclusiones
Introducción
La Evolución de los lenguajes de programación desde las interfaces de comandos, hasta los VPL han llenado de promesas el futuro de las nuevas interfaces de programación.
Pero cuales son sus verdaderos alcances?
Hacia donde se dirigen?
VrPE!
VLP vs TLP
Lenguajes de Prog Visual Programación en la cuál más de una
dimensión es utilizada para comunicar semántica (Burnnet).
Lenguaje de programación que utiliza predominantemente notación gráfica (Najork - Cube).
VLP vs TLP
Lenguajes de Prog Textual: Incorporan 2 dimensiones:
X - Cadena lineal Y - Separación de líneas Solo la dimensión X lleva semántica.
La principal diferencia con los VLP es la multidimencionalidad con semántica asociada (Burnnet).
Fortalezas de los VLP
Los humanos saben procesar imágenes más rápida y fácilmente que texto (Raeder). Acceso aleatorio vs Secuencial Rata de Transferencia
(sensores para procesamiento de imágenes en tiempo real)
Expresiónes Multidimencionales (multidimención y propiedades visuales, cod. Compacta)
Concreto vs Abtracto (Metaforas cocretas a ideas abstractas)
Fortalezas de los VLP
Los programadores utilizan gráficos comúnmente para desarrollar algoritmos y estructuras de datos y para comunicarse entre ellos (Raeder).
Debilidades de los VLP
Problema del Espacio en la Pantalla Abstracción de procedimientos Colapsando subprogramas a figuras (cajas negras)
Baja velocidad en ejecución. Código interpretado
Falta de sistemas de tipos estáticos Chequeo de tipos en run-time.
Semántica conservadora Paradigma de flujo de datos
Argumentos para Notación 3D Porque apoyamos la programación 3D? (… si no lo sabemos aún en 2D!)
No reemplazar la prog visual e iconica en 2D. Ampliar horizontes incluyendo 3D cuando
sea apropiado. Tecnología disponible Analogía con otras ciencias
Exploración revolucionaria y no evolutiva.
(Glinert)
Cube
Lenguaje de flujo de datos en 3D Basado en el Paradigma Lógico Visualización de predicados como cubos. Conexión de cubos (predicados) por
medio de tubos para flujo de datos. Sistema de tipos estático y polimorfico
Cube
F = 1.8 * C + 32.0 conv(C,F) <= times(C,1.8,X), plus(X,32.0,F)
Cube - Ejemplo
SAM - Solid Agent in Motion*
Lenguaje sincrónico de programación paralela.
Especificación y análisis de comportamiento paralelo reactivo.
Programación Animada -> Inspección Visual.
Reglas de Producción.
* Fuente de Imágenes y Contenido : “SAM - An Animated 3D Programming Language” (Geiger, Muller, Rosenbach - C-LAB)
SAM- Productor Consumidor
SAM- Productor Consumidor
SAM - Técnicas de Interacción
SAM - Resumen
Primera aproximación Visual a un lenguaje de propósito general 3D.
Futuro: Comportamientos recursivos. Constructores de ciclos. Especificación de Agentes inteligentes a
través de reglas dinámicas con prioridades.
3D-PP*
Problemas: Small Screen Problem Scaling Up Problem
*Fuente de Imágenes y Contenido: “3D-PP: Visual Programming System with 3D representation” (Oshiba, Tanaka) U. Tsukuba.
3D-PP
Ventajas: Desplegar más en menos espacio (Prog
Visuales a gran escala). Expresión realista de la estructura visual
del programa. Animación tridimensional
Distribución Flexible Cruces o sobreposición de objetos
inevitable en 2D.
3D-PP - Descripción
Basado en GHC (Lenguaje de prog. Lógica concurrente). Paradigma declarativo Menos elementos en LPL (Leng de Prog
Lógica) que en LP (Leng Procedimentales).
La Programación Visual es declarativa Ejecución directa sobre el motor GHC
3D-PP - Descripción
Clausulas: predicate(args,…):- guard | body
Elementos: Atomos, Listas, datos Input/Output , goals,
built-in goals.
3D-PP - Interacción
Manipulación Directa (DM)* Las operaciones del programador invocan
directamente la reacción del sistema.
*Ref: “Direct Manipulation: A Step Beyond Programming Languages” (Shneiderman).
3D-PP - Interacción DaD Extendido:
P1: Falta de información de profundidad
3D-PP - Interacción
DaD Extendido: P2: Un objeto lejano es pequeño
3D-PP - Interacción
DaD Extendido:
3D-PP - Interacción
DaD Extendido:
3D-PP - Interacción Representación semitransparente Accesibilidad al interior de la estructura de
un programa
3D-PP :Ejemplo
Calcular el primo
número 1000:
3D-PP : Ejecución
Ejecución del
calculo del número
primo 1000.
Trabajo Relacionado
PrologSpace VisualLinda SCIRun (3D Windgets) ToonTalk
Lingua Graphica
Provee sintaxis 3D para programas en C++
ToonTalk
VrPE - Virtual Programming Environments Basados en Paradigmas Visuales. Visualización del Mundo en 3D Técnicas 3D para :
Control Retroalimentación Navegación Acceso
Conclusiones Aun no se alcanza una eficiente
interacción 3D en los VPL. VrPEs para objetivos específicos. Nuevos “paradigmas visuales” soportarán
los VrPEs. Los VrPEs acercaran los antiguos y
nuevos paradigmas textuales hasta el usuario final.
Es necesario Hardware especializado.
Conclusiones
Nuevos paradigmas Programación por Ejemplo Programación por Demostración Reglas antes-después (before-after)
Palabras Clave
3D Computer Human Interaction 3D Visual Programming Environment Visual Programming Language