Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Found in Translation

Domain Specific Languages for Simple, Composable Systems

Quick, what's MMXVII minus MCMLXXXVIII? (It's XXIX.) The right notation can make the difference between an intractable challenge and a simple solution. Designing a new notation to reflect the fundamental structure of a problem is one of the most powerful, and underused, tools in our technical toolkits.

With the recent (on a historical timescale) advent of the digital computer, humankind can now make these new and useful notations executable. This talk explores the power of designing and implementing domain-specific languages (DSLs) as components of technical software systems. DSLs excel in helping us build open-ended, configurable, explorable systems by allowing users to compose tailored vocabularies into larger structures.

As a case study, we'll see an expression language designed to help a client turn their Monte Carlo portfolio simulation from a rigid tool for reporting specific hard-coded metrics to a flexible system for answering open-ended questions: "what's the probability of achieving our cashflow goals over the next five years?"

We'll also discuss the whys and why-nots of choosing to implement DSLs, some guidance on design and implementation strategy, and some fundamental ideas and off-the-shelf tools which can make implementation simpler.

(c) 2017 dwt | terminus data science, LLC
Presentation material is licensed under the Creative Commons CC-BY-NC 4.0 license (free for non-commercial use with attribution); all code samples are licensed under the MIT license (free for commercial or non-commercial use).


Found In Translation: Domain Specific Languages for Simple, Composable Systems







No releases published


No packages published