
Hi Emil,
now that is an interpretation I could live with!
Glad I posted the question.
Günther
Am 07.10.2009, 17:24 Uhr, schrieb Emil Axelsson
Hi,
A DSL is just a domain-specific language. It doesn't imply any specific implementation technique.
An *embedded* DSL is a library implemented in a more general language, which has been designed to give the "feeling" of a stand-alone language. Still nothing about implementation.
A *shallow embedding* of a DSL is when the "evaluation" is done immediately by the functions and combinators of the DSL. I don't think it's possible to draw a line between a combinator library and a shallowly embedded DSL.
A *deep embedding* is when interpretation is done on an intermediate data structure.
/ Emil