The Software Languages Book

A textbook on software languages authored by Ralf Lämmel.

Title: Software languages

Subtitle: Syntax, semantics, and metaprogramming


Frontmatter including table of contents: (.pdf)

Sample chapter - The notion of a software language: (.pdf)

The book and chapters thereof can be shared with individuals (typically lecturers and possibly student in a course), subject to agreement with a copyright notice which basically constraints sharing. Contact the author, if you are interested. Below also find slides and videos for material in the book.

Copyright for artwork: (C) 2016-17 Wojciech Kwasnik, Daniel Dünker, Matt Sheehy, Archina Void, Ralf Lämmel, Software Languages Team, Faculty of Computer Science, University of Koblenz-Landau. Image licensed under a Creative Commons Attribution 4.0 International License.

   author = "R. L{\"{a}}mmel",
   title = "{Software languages: Syntax, semantics, and metaprogramming}",
   year = "2018",
   publisher = "Springer",
   note = "Book's website: \url{}"

Slides and videos

Topics from the book are supported by focused and compact presentations with slides an YouTube videos as listed below. The videos are typically less than 20 mins long. Experienced lecturers will be able to use the underlying slides for an extended presentation.

Chapter/section level

Topic Slides Video
Internal DSL style PDF YouTube (15 mins)
External DSL style PDF YouTube (16 mins)
Program generation with template processing PDF YouTube (11 mins)
Tree-based abstract syntax PDF YouTube (9 mins)
Interpretation PDF YouTube (18 mins)
Big-step operational semantics PDF YouTube (16 mins)
Small-step operational semantics PDF YouTube (13 mins)
Type systems PDF YouTube (17 mins)
Denotational semantics PDF YouTube (18 mins)
The lambda calculus PDF YouTube (18 mins)
System F and type extensions PDF YouTube (34 mins)
Abstract interpretation PDF YouTube (35 mins)
Compilation PDF N/A
Parsing PDF N/A
Term rewriting PDF N/A

Other lectures

Topic Slides Video
What’s software language engineering? PDF N/A
An introduction to programming language theory PDF N/A
An interpreter for every season PDF N/A
Meta-programming options for DSL implementation PDF YouTube (45 mins)