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 between 10-15mins. Experienced lecturers will be able to use the underlying slides for an extended presentation.

  • Internal DSL style: [PDF]; [YouTube]
  • External DSL style: [PDF]; [YouTube]
  • Program generation with template processing: [PDF]; [YouTube]
  • Tree-based abstract syntax: [PDF]; [YouTube]
  • Basics of interpretation: [PDF]; [YouTube]
  • Big-step operational semantics: [PDF]; [YouTube]
  • Small-step operational semantics: [PDF]; [YouTube]
  • An introduction to type systems: [PDF]; [YouTube]
  • An introduction to denotational semantics: [PDF]; [YouTube]
  • An introduction to the lambda calculus: [PDF]; [YouTube]
  • Short introduction to programming language theory: [PDF]
  • An interpreter for every season: [PDF]
  • Compilation - a primer: [PDF]
  • Parsing - a primer: [PDF]
  • Term rewriting - a primer: [PDF]