A textbook on software languages authored by Ralf Lämmel.
Title: Software languages
Subtitle: Syntax, semantics, and metaprogramming
Availability:
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.
@book{slbook,
author = "R. L{\"{a}}mmel",
title = "{Software languages: Syntax, semantics, and metaprogramming}",
year = "2018",
publisher = "Springer",
note = "Book's website: \url{http://www.softlang.org/book}"
}
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 | YouTube (15 mins) | |
External DSL style | YouTube (16 mins) | |
Program generation with template processing | YouTube (11 mins) | |
Tree-based abstract syntax | YouTube (9 mins) | |
Interpretation | YouTube (18 mins) | |
Big-step operational semantics | YouTube (16 mins) | |
Small-step operational semantics | YouTube (13 mins) | |
Type systems | YouTube (17 mins) | |
Denotational semantics | YouTube (18 mins) | |
The lambda calculus | YouTube (18 mins) | |
System F and type extensions | YouTube (34 mins) | |
Abstract interpretation | YouTube (35 mins) | |
Compilation | N/A | |
Parsing | N/A | |
Term rewriting | N/A |
Other lectures
Topic | Slides | Video |
---|---|---|
What’s software language engineering? | N/A | |
An introduction to programming language theory | N/A | |
An interpreter for every season | N/A | |
Meta-programming options for DSL implementation | YouTube (45 mins) |