engmux / dsl-syllabus-fall-2016

The syllabus from 15-819, the PhD seminar I taught on domain-specific programming languages fall 2016.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Domain-Specific Languages Syllabus

Something I spend a lot of time thinking about is how to use the right tool for the task, in programming and otherwise. It was this, rather than a love for logic or formal semantics, that made me fall in love with the study of programming languages. (Although I did go to logic summer camp as a kid...) For this reason, I strongly believe that every programming language is a domain-specific language and we should regard and evaluate languages through the lenses of their domains.

When I first joined Carnegie Mellon University as an Assistant Profesor, I had the luxury of designing a PhD seminar on any topic of my choosing. What I wanted to do was to give students a tour of how I think about designing and implementing programming languages, with the view that we're looking at each language in the context of its domain. Here is the syllabus for my advanced topics domain-specific languages course at CMU, fall 2016. In this course, we open with overview of languages for different purposes and then do deep dives into three domains I've worked in: systems programming, information flow security, and biology.

Since people have been asking about the reading list, I thought I'd post it here. I hope it's a useful resource for people hoping to get a broader context for thinking about programming languages and language design.

Unit 1: Why domain-specific languages?

Unit 2: How to build domain-specific languages?

Unit 3: Language-based approaches to systems programming

Unit 4: Language-based information flow

Unit 5: Languages for modelling biology

Other

We looked at a couple more topics upon student request.

About

The syllabus from 15-819, the PhD seminar I taught on domain-specific programming languages fall 2016.