The design and (...) of embedded Domain Specific Languages - P.Koopman & M.Lubbers | LambdaDays24
✨ This talk was recorded at Lambda Days in June 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ Abstract A Domain Specific Language, DSL, is a computer language specialized for some specific domain. Examples are text processing, creation of webpages, specifying properties for software testing and task-oriented programming. Some DSLs are standalone, like LaTeX for text processing. An embedded DSL, eDSL, can be combined with other parts of the language. DSLs have been created in functional programming languages like Haskell, Clojure, Scala and Erlang. Creating libraries as an eDSL allows us to focus more on the design of the language extension and offers guidance for its implementation. DSL implementation techniques 1) The DSL is a datatype. This is the motivation behind GADTs. We need Higher Order Abstract Syntax to create type safe identifiers. This allows different views, like printing and execution. 2) The DSL is a set of functions. This uses the full host language, but is limited to a single view. 3) A set of type classes combines the flexibility of functions with multiple views. Let's keep in touch! Follow us on: 💥Twitter: https://twitter.com/LambdaDays 💥LinkedIn: https://www.linkedin.com/company/lambda-days 💥Facebook: https://www.facebook.com/lambdadays 💥Mastodon: https://genserver.social/codesync