This document discusses using Groovy to create domain-specific languages (DSLs). It defines external and internal DSLs and explains the goals of DSLs. It outlines tools in Groovy for DSLs, including the Groovy shell, compiler customizers, and AST transformations. The document provides examples of DSLs built with Groovy like Gradle, Grails, and Spock and demonstrates how to share data between a Groovy script and application using bindings.