When designing software, we often need to solve numerous instances of the same problem. When designing user interfaces, we need to describe the layout and interaction. For financial systems, we need to describe a wide range of financial contracts or, for example, recognize different patterns in price change.
Domain Specific Languages (DSLs) give us a way to solve such repeating problems. By designing a composable functional library, we can build an expressive language to describe our problem. Using the flexible F# syntax, we can get code that even non-programmers can understand.
In this talk, we’ll demonstrate how to develop DSLs in practice, using a variety of samples, and ending with realistic examples. We’ll cover both basic principles of DSL design, as well as advanced tricks such as using the F# 3.0 query syntax.
Tomas Petricek is a long-time F# enthusiast, regular speaker at F# and .NET events, founding member of the F# Foundation, Microsoft MVP and author of a book
Real-World Functional Programming (http://manning.com/petricek). He leads
functional programming and F# courses in London and New York and contributed to the development of F# as an intern and contractor at Microsoft Research in Cambridge. He is a PhD student at University of Cambridge, working on functional programming languages. You can find Tomas on Twitter as @tomaspetricek, and his blog at tomasp.net.