El próximo lunes 15 de septiembre, abrimos la agenda de eventos en International Lab, con una charla sobre Tagless-final y la generación de código rápido de streaming o en paralelo para el análisis de datos de la mano de Habla Computing.
El análisis de datos (la transformación y consulta, agrupación y agregación de volúmenes de datos) es una de las muchas áreas que exigen tanto flexibilidad como alto rendimiento. Encadenar y reajustar las operaciones de procesamiento es intuitivo, pero también suele ser lento, exige muchos recursos y es difícil de paralelizar. Las máquinas de estado (concurrentes) ofrecen el mayor rendimiento, pero son difíciles de escribir correctamente y, sobre todo, de modificar.
En esta charla, Tagless-final y la generación de código rápido de streaming o en paralelo para el análisis de datos, mostraremos con varios ejemplos realistas, cómo resolver este dilema: escribir pipelines intuitivos y correctos de forma intuitiva para obtener un rendimiento (muy) alto. La idea general es básicamente el antiguo procesamiento de macros, pero «al revés». Normalmente, el lenguaje base es muy expresivo y el sistema de macros/preprocesador es restrictivo, idiosincrásico y a menudo «atornillado». En contraste, nosotros tomamos como lenguaje de «macros» un lenguaje de propósito general con todas sus comodidades; es el lenguaje «base» el que está desnudo, con solo las palabras necesarias para el problema en cuestión. Como en la escritura, elegir las palabras correctas es difícil. Sin embargo, hay algunas buenas heurísticas.
El Tagless-final es la manera de construir de forma conveniente las frases base (o destino), de extender el lenguaje destino y de dar significado a sus palabras, a menudo en términos de otros lenguajes destino de nivel inferior —eventualmente C, Wasm o subconjuntos simples de OCaml y Scala—.
Mostraremos la construcción de pipelines de agregación anidados, de forma incremental e interactiva (con REPL y con el público), haciendo pruebas sobre la marcha. El pipeline completado puede compilarse después a código C, OCaml o Wasm secuencial o en paralelo. Todos estos backends están representados como un lenguaje destino inferior, extensible e intercambiable.
Agenda
18:30 – Welcome.
18:35 – Talk by Oleg: Tagless-final and generating fast streaming or parallel code for data analytics (see abstract below)
19:30 – Roundtable and discussion. An open session focused on sharing feedback with Oleg about how we understand and apply (or don’t apply) tagless-final in our daily work
20:00 – Networking (proudly sponsored by Habla Computing).
Invitado
Oleg Kiselyov lleva 45 años programando e investigando en diversos lenguajes, organizaciones y empresas. Actualmente es investigador invitado y profesor adjunto en la Universidad de Tohoku, Japón. https://okmij.org/ftp/
📍 Ubicación: International Lab (c/ Bailén, 41), Madrid
📅 Fecha: 15 de septiembre de 2025 | ⏰ 18:30 a 20:00
🎟️ Inscríbete AQUÍ (Plazas limitadas)