&#62; Sure, if your "domain" is some Turing-complete language.<p>Which is exactly what Smalltalk is.  Pick any other domain, and you can use the same syntactic elements used to build the base language to extend it into that particular domain.<p>Ruby DSL's control structures tend to look nothing like Ruby the language's control structures; Smalltalk DSL's control structures look exactly like Smalltalk the language's control structures.