Icicle : Mises à jour destructrices via la monade Tardis et le graphe de couture

2025-03-20

Icicle, un langage de requête de streaming de haut niveau, compile en C en utilisant une approche de structure de tableaux. Pour garantir la pureté, le compilateur insère initialement des opérations de copie avant les mutations de tableau. Cet article détaille une optimisation utilisant la monade Tardis et un graphe de couture pour éliminer la plupart de ces copies, permettant des mises à jour destructrices et obtenant une réduction du temps d'exécution jusqu'à 50 %. L'algorithme construit un graphe de référence pour suivre les références de tableau, en utilisant des traversées avant et arrière avec la monade Tardis pour déterminer les mises à jour destructrices sûres. Cela combine intelligemment les concepts de programmation fonctionnelle avec l'optimisation au moment de la compilation, offrant une nouvelle approche pour améliorer les performances du langage de requête de streaming.

Développement