Difference between revisions of "Embedded domain specific language"

From HaskellWiki
Jump to navigation Jump to search
 
(links to Haskell Cafe)
Line 1: Line 1:
 
'''Embedded Domain Specific Language''' means that you embed a [[Domain specific language]] in a language like Haskell.
 
'''Embedded Domain Specific Language''' means that you embed a [[Domain specific language]] in a language like Haskell.
 
E.g. using the [[functionalMetaPost]] library you can write Haskell expressions, which are then translated to MetaPost, MetaPost is run on the generated code and the result of MetaPost can be post-processed in Haskell.
 
E.g. using the [[functionalMetaPost]] library you can write Haskell expressions, which are then translated to MetaPost, MetaPost is run on the generated code and the result of MetaPost can be post-processed in Haskell.
  +
  +
== Discussion of common problems ==
  +
  +
[[Sharing]] and [[recursion]] are common problems when implementing DSLs.
  +
Often some kind of [[observable sharing]] is requested.
  +
  +
* Oleg in Haskell-Cafe about [http://www.haskell.org/pipermail/haskell-cafe/2008-February/039639.html Designing DSL with explicit sharing (was: I love purity, but it's killing me)]
  +
* Koen Classen: [http://www.cs.chalmers.se/~koen/pubs/entry-asian99-lava.html Observable Sharing for Functional Circuit Description]
   
 
[[Category:Glossary]]
 
[[Category:Glossary]]

Revision as of 13:10, 15 February 2008

Embedded Domain Specific Language means that you embed a Domain specific language in a language like Haskell. E.g. using the functionalMetaPost library you can write Haskell expressions, which are then translated to MetaPost, MetaPost is run on the generated code and the result of MetaPost can be post-processed in Haskell.

Discussion of common problems

Sharing and recursion are common problems when implementing DSLs. Often some kind of observable sharing is requested.