interpreter pattern in very informative talkneil greentechnical lead at icesuggested the following process for developing dsl understand your domain model your domain implement your domain if we were to follow neil' guidancewe would go talk to the restaurant owner we would try to learn how he or she expresses the rules for specialsand then try to capture these rules in language that makes sense to us as well as to the owner we would then draw some sort of diagram based on our conversation if the owner agrees that we captured the essence of what he or she was sayingwe get to write some code to implement our model dsls come in two flavorsinternal and external external dsls have code written in an external file or as string this string or file is then read and parsed by the application before it gets used css is an example of an external dslwhere the browser is tasked with readingparsingand interpreting the textual data that represents how html elements should be displayed internal dslson the other handuse features of the language--pythonin this case--to enable people to write code that resembles the domain syntaxan example would be how numpy uses python to allow mathematicians to describe linear algebra problems the interpreter pattern specifically caters to internal dsls the idea is to create syntax that is significantly less comprehensive than generalpurpose languageyet significantly more expressivespecifically as it relates to the domain in question have look at the following codewhich defines rules for specials run by our imaginary restaurant and is written as conditionals in python pizzas [item for tab items if item type ="pizza"if len(pizzas and day_of_week = cheapest_pizza_price min([pizza price for pizza in pizzas]tab add_discount(cheapest_pizza_pricedrinks [item for tab items if item type ="drink"if hour_now for item in tab itemsif item type ="drink"item price item price