360 likes | 507 Views
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.
E N D
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)
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 - 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++
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