2 points par GN⁺ 2024-11-02 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Hazel est un environnement web de programmation fonctionnelle live centré sur les typed holes, qui permet de vérifier les types, manipuler et exécuter même des programmes inachevés
  • L’idée centrale est de modéliser les états incomplets — blancs, erreurs de type, conflits de merge — sous forme de holes, afin de réduire les zones où l’éditeur perd le sens du programme
  • Les programmes incomplets que l’on peut créer dans Hazel sont définis statiquement et dynamiquement, et peuvent avoir des types incomplets ainsi que des résultats d’exécution incomplets
  • La cible d’implémentation est un langage fonctionnel de la famille Elm/ML, et Hazel sert de base à des travaux sur l’enseignement de la programmation, l’édition collaborative, l’apprentissage de preuves et la complétion de code par IA
  • Projet de recherche open source piloté par le Future of Programming Lab de l’University of Michigan, Hazel propose un build web d’essai et publie son code source sur GitHub

L’idée centrale de Hazel

  • Hazel est un environnement de programmation fonctionnelle live construit autour des typed holes
  • Même avec un programme inachevé, il reste possible de poursuivre les opérations suivantes
    • Vérification de types
    • Manipulation
    • Exécution
  • L’objectif est de créer un environnement qui conserve un retour utile même lorsque le code en cours d’édition est dans un état cassé

La manière de traiter les programmes incomplets

  • Dans un processus de programmation classique, le texte du programme se retrouve souvent dans un état qui n’est pas formellement complet
    • Blancs
    • Erreurs de type
    • Conflits de merge
  • Les définitions traditionnelles des langages de programmation ne donnent pas de signification formelle à ces structures, ce qui rend difficile de traiter en retour live même le comportement des parties déjà complètes du code
  • Les éditeurs et les outils finissent par s’appuyer sur des heuristiques complexes pour fournir sans interruption la complétion de code, la vérification de types et la navigation dans le code
  • Hazel modélise les programmes incomplets comme des programmes avec des holes
    • Un hole représente une partie manquante du programme
    • Il agit comme une enveloppe autour d’une partie erronée ou d’une zone de conflit dans un environnement collaboratif
  • Cette approche s’appuie sur la théorie des types modaux contextuels et sur la théorie du typage graduel

L’environnement Hazel et son modèle d’exécution

  • Hazel est implémenté comme un environnement de programmation web pour un langage fonctionnel proche d’Elm/ML
  • Tous les programmes incomplets qui peuvent être créés avec le langage d’actions d’édition de Hazel sont définis statiquement et dynamiquement
    • Ils peuvent avoir des types incomplets
    • À l’exécution, ils peuvent produire des résultats incomplets
  • Grâce à cette propriété, Hazel sert de plateforme pour la recherche sur les futurs environnements de programmation et sur l’enseignement de la programmation

Vision de recherche et ressources associées

Recherches récentes et publications

Utilisation et contribution

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.