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 <e...@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



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to