[Haskell-cafe] What *is* a DSL?

Günther Schmidt gue.schmidt at web.de
Wed Oct 7 11:31:24 EDT 2009

Hi Emil,

now that is an interpretation I could live with!

Glad I posted the question.


Am 07.10.2009, 17:24 Uhr, schrieb Emil Axelsson <emax at chalmers.se>:

> 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

More information about the Haskell-Cafe mailing list