2 pontos por GN⁺ 2024-11-02 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Hazel é um ambiente web de programação funcional ao vivo centrado em typed holes, permitindo verificar tipos, manipular e executar até programas incompletos
  • Estados incompletos como lacunas, erros de tipo e conflitos de merge são modelados como holes, e o ponto central é reduzir os trechos em que o editor perde significado
  • Os programas incompletos que podem ser criados no Hazel são definidos estática e dinamicamente, podendo ter tipos incompletos e resultados de execução incompletos
  • O alvo de implementação é uma linguagem funcional da família Elm/ML, e ela é usada como base para ensino de programação, edição colaborativa, aprendizado de provas e pesquisa em conclusão de código com IA
  • É um projeto de pesquisa open source liderado pelo Future of Programming Lab da University of Michigan, com uma build web para testes e o código-fonte no GitHub disponíveis ao público

A ideia central do Hazel

  • Hazel é um ambiente de programação funcional ao vivo estruturado em torno de typed holes
  • Mesmo programas inacabados permitem continuar o trabalho seguinte
    • verificação de tipos
    • manipulação
    • execução
  • O objetivo é criar um ambiente que mantenha feedback significativo mesmo quando o código em edição está quebrado

Como lida com programas incompletos

  • No processo normal de programação, é comum o texto do programa ficar formalmente incompleto com frequência
    • lacunas
    • erros de tipo
    • conflitos de merge
  • As definições tradicionais de linguagens de programação não atribuem significado formal a essas estruturas, o que dificulta tratar até o comportamento das partes concluídas do código como feedback ao vivo
  • Editores e ferramentas acabam dependendo de heurísticas complexas para oferecer autocompletar, verificação de tipos e navegação pelo código sem interrupções
  • Hazel modela programas incompletos como programas com holes
    • holes representam partes ausentes do programa
    • funcionam como uma membrana que envolve trechos com erro ou áreas de conflito em ambientes colaborativos
  • Essa abordagem se baseia em teoria contextual modal de tipos e teoria gradual de tipos

O ambiente Hazel e o modelo de execução

  • Hazel está sendo implementado como um ambiente de programação web para uma linguagem funcional semelhante a Elm/ML
  • Todos os programas incompletos que podem ser produzidos pela linguagem de ações de edição do Hazel são definidos estática e dinamicamente
    • podem ter tipos incompletos
    • ao executar, podem gerar resultados incompletos
  • Graças a essa característica, Hazel é usado como plataforma para pesquisas sobre ambientes de programação do futuro e ensino de programação

Visão de pesquisa e materiais relacionados

Fluxo recente de pesquisa e publicações

Uso e contribuição

Ainda não há comentários.

Ainda não há comentários.