Best resource to learn DSL?

DSL are used in runtime and compile time. At runtime they help customising the software through scripts or rules. Systems expose ability to customise the functionality/behaviour through the DSLs. For example rules editor in a firebase - Security Rules language  |  Firebase Security Rules . Quite a lot of google cloud services use Common Expression Language - GitHub - cel-expr/cel-spec: Common Expression Language -- specification and binary representation · GitHub 

The complete guide to (external) Domain Specific Languages - Strumenta covers a lot of things about DSLs.

Elixir has metaprogramming through macros which is compile time.Ecto has DSL for simplifying queries for accessing the data. If your use case is writing a compile time DSL - elixir metaprogramming makes it easy. Runtime DSL in elixir needs a lot of things - like interpreter, etc to be implemented.

Implementing a DSL needs grammar to be formalised as language spec.

What are you trying to achieve with DSL in your application? Is it runtime or compile time ?

4 Likes