Skip to content
Tagless final (II/III)

Details

Seguimos con la serie de charlas online que en este Junio pandémico estamos dedicando a tagless final como aproximación para la creación de DSL's embebidos en Scala. En la primera sesión, Juan Manuel Serrano, profesor de la Universidad Rey Juan Carlos y responsable técnico en Habla Computing, nos introdujo esta técnica comparándola con otras formas de abstracción y composición. En esta segunda, revisaremos de la mano de Juan José Vázquez, CTO de Tecsisa, los detalles técnicos de tagless final comenzando con un ejemplo sencillo pero suficiente para introducir los elementos fundamentales de esta técnica. Y dado que estamos ya muy cerca de la primera RC de Scala 3, aprovecharemos para mostrar algunas de las novedades del lenguaje y qué nos pueden aportar en este caso.

En esta sesión responderemos a las preguntas:

  • ¿Para qué sirven los DSL's?. ¿Cuándo plantearse desarrollar uno?
  • ¿Qué diferencias existen entre DSL's externos y embebidos?
  • ¿Qué es deep embedding y shallow embedding?
  • ¿Qué son las aproximaciones initial y final?. ¿Cómo se relacionan?
  • ¿Cuáles son los requisitos que debe cumplir un lenguaje de programación para poder albergar un DSL con tagless final?
  • ¿Cómo garantizamos la extensibilidad, mantenibilidad y testeabilidad en el DSL?
  • ¿Cómo superamos el problema de la serialización y deserialización de los programas?

Como dijo Dijkstra: "the purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise". En esta sesión veremos que tagless final nos puede ayudar a alcanzar esa absoluta precisión mediante la abstracción sin culpa.

Photo of ScalaMAD: Scala Programming @ Madrid group
ScalaMAD: Scala Programming @ Madrid
See more events