Domain-specific languages (DSLs) are little languages you write that look and feel like a spoken way to specify data or write code. You can use them for input and output, incorporating the jargon and nomenclature of your subject-matter experts (SMEs), as well as inside your own code to make it more expressive and fluent, and often simpler. You can use them as part of your build process to generate hundreds of classes full of otherwise tedious and error-prone boilerplate code from a small specification in a consistent manner. In this course, we’ll design and implement several types of DSLs. We’ll write code to edit and import data, allowing SMEs more natural-feeling access to your software. We’ll create APIs in multiple programming languages to make it easier and more secure for others to use your libraries. We’ll generate code to improve productivity and reliability in your own software.
Examples and assignments in this class will be done in several programming languages. We assume a high comfort level with Java and the ability to adapt to new languages quickly.