The attendees will learn to assess and compare different implementation technologies for DSLs, such as model-driven code generators, meta-programming, libraries, interpreters, and embedded domain-specific languages. In addition, the attendees will be given a detailed introduction to a particular DSL architecture called polymorphic embedding, which combines the advantages of syntactic and semantic approaches to DSLs.