Steve Cook, Gareth Jones, Stuart Kent, Alan Cameron Wills. Domain-Specific Development with Visual Studio DSL Tools. Addison-Wesley, 2007. - 560 p.
Ludwig Wittgenstein once compared a language to a city. In the historic center were gnarly lanes, in the middle were broad avenues and gardens with diverse architecture, and on the edges were geometrically planned suburbs. He was, of course, speaking of what we now call natural languages, but the analogy holds to our computer languages as well. We have low-level languages that fit the historic centers. And the boxy modeling techniques we use are the Stalinist apartment blocks in the suburbs.