Icicle: Atualizações Destrutivas via Monada Tardis e Grafo de Costura
Icicle, uma linguagem de consulta de streaming de alto nível, compila para C usando uma abordagem de estrutura de matrizes. Para garantir pureza, o compilador inicialmente insere operações de cópia antes de mutações de matriz. Esta publicação detalha uma otimização usando a Monada Tardis e um grafo de costura para eliminar a maioria dessas cópias, permitindo atualizações destrutivas e obtendo uma redução de tempo de execução de até 50%. O algoritmo constrói um grafo de referência para rastrear referências de matriz, usando travessias para frente e para trás com a Monada Tardis para determinar atualizações destrutivas seguras. Isso combina inteligentemente conceitos de programação funcional com otimização em tempo de compilação, oferecendo uma abordagem nova para melhorar o desempenho da linguagem de consulta de streaming.