Icicle: Actualizaciones destructivas mediante la mónada Tardis y el grafo de costura
Icicle, un lenguaje de consulta de streaming de alto nivel, se compila a C utilizando un enfoque de estructura de matrices. Para garantizar la pureza, el compilador inicialmente inserta operaciones de copia antes de las mutaciones de matriz. Esta publicación detalla una optimización que utiliza la mónada Tardis y un grafo de costura para eliminar la mayoría de estas copias, permitiendo actualizaciones destructivas y logrando una reducción del tiempo de ejecución de hasta el 50%. El algoritmo construye un grafo de referencia para rastrear las referencias de matriz, utilizando recorridos hacia adelante y hacia atrás con la mónada Tardis para determinar actualizaciones destructivas seguras. Esto combina inteligentemente los conceptos de programación funcional con la optimización en tiempo de compilación, ofreciendo un nuevo enfoque para mejorar el rendimiento del lenguaje de consulta de streaming.
Leer más