Functional Programming eXchange 2012 / Haskell for embedded domain-specific languages

Please RSVP for instructions on how to join the event.

Description

A domain-specific language (DSL) is a usually small language for a dedicated domain with its own unique appearance and rules for composition. Haskell has a very flexible syntax, and offers higher-order functions. Therefore, we can often mimic the visual style of a particular domain directly within the language, yielding an embedded DSL. 

The advantages of embedding DSLs are that we can use Haskell's strong type system to ensure the correctness of our DSL programs, saving us the work of implementing a full compiler. Furthermore, we can use all of Haskell's abstraction facilities, thereby making the DSL more powerful than it might at first appear. Finally, we can easily mix different DSLs in a single program. 

The Haskell world is full of DSLs being used for various things such as parsing, testing, interfacing to databases, generating content for the web, composing music, images and animations etc. In this talk, we will look at a number of example EDSLs and explore some fundamental principles, with the goal of highlighting the many advantages (and the few disadvantages) of the EDSL approach as well as providing advice for the design of new EDSLs. 

Outline

A domain-specific language (DSL) is a usually small language for a dedicated domain with its own unique appearance and rules for composition. Haskell has a very flexible syntax, and offers higher-order functions. Therefore, we can often mimic the visual style of a particular domain directly within the language, yielding an embedded DSL. 

The advantages of embedding DSLs are that we can use Haskell's strong type system to ensure the correctness of our DSL programs, saving us the work of implementing a full compiler. Furthermore, we can use all of Haskell's abstraction facilities, thereby making the DSL more powerful than it might at first appear. Finally, we can easily mix different DSLs in a single program. 

The Haskell world is full of DSLs being used for various things such as parsing, testing, interfacing to databases, generating content for the web, composing music, images and animations etc. In this talk, we will look at a number of example EDSLs and explore some fundamental principles, with the goal of highlighting the many advantages (and the few disadvantages) of the EDSL approach as well as providing advice for the design of new EDSLs. 

Recording

The creator of this video has not given permission to embed it on this domain.

Instead, you can view this video by following this external link:

Go to site

Andres Löh (34)

8.5k
AuthorDeveloper

No biography is available.

For a complete view of this profile, including education, work experience and developer information, you need to be logged in and have a subscription.

Andres's upcoming trainings

No events

Andres's past online trainings

Andres's blog posts

IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper