
DSLs in Action
Debasish Ghosh
- Editorial
- Manning
- Año
- 2011
- Páginas
- ~376
- Nivel
- Intermedio
De qué trata
Obra técnica de Debasish Ghosh dedicada al diseño e implementación de lenguajes específicos de dominio (DSLs) en el ecosistema de la JVM (Java Virtual Machine). Está orientada a desarrolladores y arquitectos de software de nivel intermedio a avanzado que dominan Java y desean aprender a diseñar abstracciones expresivas y lenguajes personalizados que hablen el vocabulario directo del dominio de negocio.
El autor examina exhaustivamente tanto los DSLs internos como los externos. En el ámbito de los DSLs internos, enseña a aprovechar las características sintácticas de Scala (sistema de tipos estático, notación infija, closures y funciones de orden superior), Groovy (metaprogramación dinámica y constructores fluidos), Clojure (macros y homoiconicidad) y Ruby. Para los DSLs externos, detalla la construcción de gramáticas y analizadores sintácticos apoyándose en herramientas consolidadas como ANTLR, el entorno de desarrollo y gramáticas de Eclipse Xtext, y combinadores de parsers en Scala, abordando además la integración fluida con arquitecturas empresariales y el framework Spring.
El aprendizaje se articula en torno a un caso de uso financiero realista: un sistema de negociación y procesamiento de órdenes de valores bursátiles, implementando reglas de validación, comisiones y ejecución de operaciones en cada uno de los lenguajes y parsers analizados. El libro es una referencia excelente en diseño de abstracciones y lenguajes en la JVM, aunque al estar publicado en 2011 no cubre las evoluciones recientes de Scala o Groovy. Se requiere un manejo sólido de Java y nociones de programación funcional y metaprogramación.
- Domain-Specific Languages (DSLs)
- DSLs internos
- DSLs externos
- Scala
- Groovy
- Clojure
- Java
- ANTLR
- Eclipse Xtext
- Combinadores de parsers
- Metaprogramación
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Lenguaje específico para procesamiento de órdenes bursátiles (Trading DSL)
Conjunto de DSLs internos y externos orientados a modelar la colocación, validación y cálculo impositivo de operaciones bursátiles, implementados a lo largo del libro con Scala, Groovy, Clojure, ANTLR y Xtext.

