essential-interpreters icon indicating copy to clipboard operation
essential-interpreters copied to clipboard

Patterns for building interpreters in Scala

Essential Interpreters

Written by Dave Gurnell and Noel Welsh. Copyright Underscore Consulting LLP, 2015-2017.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Overview

Essential Interpreters explores the functional programming uber-pattern, the interpreter, showing many different techniques for building interpreters in Scala.

Building

Advanced Scala uses Underscore's ebook build system.

The simplest way to build the book is to use Docker Compose:

  • install Docker Compose (brew install docker-compose on OS X; or download from docker.com); and
  • run go.sh (or docker-compose run book bash if go.sh doesn't work).

This will open a bash shell running inside the Docker container which contains all the dependencies to build the book. From the shell run:

  • npm install; and then
  • sbt.

Within sbt you can issue the commands pdf, html, epub, or all to build the desired version(s) of the book. Targets are placed in the dist directory: