2 puntos por GN⁺ 2024-11-02 | Aún no hay comentarios. | Compartir por WhatsApp
  • Hazel es un entorno web de programación funcional en vivo centrado en typed holes, que permite verificar tipos, manipular y ejecutar incluso programas incompletos
  • Su idea central es modelar estados incompletos como espacios en blanco, errores de tipo y conflictos de merge como holes, reduciendo las zonas donde el editor pierde significado
  • Los programas incompletos que se pueden crear en Hazel están definidos de forma estática y dinámica, y pueden tener tipos incompletos y resultados de ejecución incompletos
  • Está implementado para un lenguaje funcional de la familia Elm/ML, y se usa como base para investigación en educación en programación, edición colaborativa, aprendizaje de pruebas y completado de código con IA
  • Es un proyecto de investigación open source liderado por el Future of Programming Lab de la University of Michigan, con un build web de prueba y el código fuente en GitHub disponibles públicamente

Idea central de Hazel

  • Hazel es un entorno de programación funcional en vivo construido alrededor de typed holes
  • Incluso con programas incompletos, permite seguir trabajando en tareas como:
    • verificación de tipos
    • manipulación
    • ejecución
  • El objetivo es crear un entorno que mantenga feedback significativo aun cuando el código en edición esté en un estado roto

Cómo maneja programas incompletos

  • En el proceso normal de programación, es común que el texto del programa quede en estados formalmente incompletos
    • espacios en blanco
    • errores de tipo
    • conflictos de merge
  • Las definiciones tradicionales de lenguajes de programación no asignan significado formal a estas estructuras, lo que dificulta tratar incluso el comportamiento de partes completas del código como feedback en vivo
  • Para ofrecer completado de código, verificación de tipos y navegación de código sin interrupciones, los editores y herramientas terminan dependiendo de heurísticas complejas
  • Hazel modela los programas incompletos como programas con holes
    • un hole representa una parte faltante del programa
    • funciona como una membrana que envuelve partes con errores o zonas en conflicto en entornos colaborativos
  • Este enfoque se basa en la teoría contextual de tipos modales y en la teoría de tipos gradual

Entorno Hazel y modelo de ejecución

  • Hazel se está implementando como un entorno de programación web para un lenguaje funcional similar a Elm/ML
  • Todos los programas incompletos que pueden construirse con el lenguaje de acciones de edición de Hazel están definidos de forma estática y dinámica
    • pueden tener tipos incompletos
    • al ejecutarse, pueden producir resultados incompletos
  • Gracias a esta característica, Hazel se usa como plataforma para investigar futuros entornos de programación y educación en programación

Visión de investigación y materiales relacionados

Investigación reciente y publicaciones

Uso y contribución

Aún no hay comentarios.

Aún no hay comentarios.