"If you have been involved in writing or even just using applications, chances are that you've already encountered domain-specific languages, or DSLs -- even if you didn't realize it at the time. A keyword input file to an application that receives input data is a DSL. A configuration file is a DSL. A makefile is a DSL used to specify rules and dependencies for building an application. If you've written any of these, you've already taken your first steps to creating domain-specific languages."
"The value of a domain-specific language lies in how well it captures and expresses a particular professional jargon, which in turn depends on the related concerns of fluency and context. In this second article in his series on DSLs, Venkat Subramaniam demystifies these essential characteristics of DSLs with examples based on real-world APIs such as EasyMock and Guice. He concludes with an iterative example in building a fluent, context-aware DSL using Groovy."
"You understand the basics of domain-specific languages and now you're ready to begin creating and refining them for your projects. In this third article in his series Venkat Subramaniam shows you how to create both internal and external DSLs using Java code. He explains the difference between the two types of DSL and why Java is a better choice for creating one type than the other. He also introduces the various options for parsing external DSLs -- as plain text, as XML, or using an industrial-strength language recognition tool such as ANTLR or openArchitectureWare."
"In this final article in the Creating DSLs in Java series, Venkat Subramaniam lets you see for yourself why JVM-compatible languages such as Scala, Groovy, and JRuby are better suited to creating internal DSLs than the Java language. As you'll learn, dynamic typing has very little to do with why these languages are ideal for internal DSLs. So what's the special ingredient in the secret sauce? Read on to find out."