Personal tools

Embedded domain specific language

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(links to Haskell Cafe)
(Added links for the Functional MetaPost library and recursion)
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 [http://en.wikipedia.org/wiki/Domain_specific_language 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 [http://cryp.to/funcmp/ Functional MetaPost 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 ==
 
== Discussion of common problems ==
   
[[Sharing]] and [[recursion]] are common problems when implementing DSLs.
+
[[Sharing]] and [http://en.wikipedia.org/wiki/Recursion recursion] are common problems when implementing DSLs.
 
Often some kind of [[observable sharing]] is requested.
 
Often some kind of [[observable sharing]] is requested.
   

Revision as of 16:07, 30 December 2008

Embedded Domain Specific Language means that you embed a Domain specific language in a language like Haskell. E.g. using the Functional MetaPost 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.