SkillsCast coming soon.
This workshop will explore patterns for writing interpreters in Scala. It will start with basic untyped interpreters, and then cover monadic interpreters, GADTs, and free monads and applicatives as time and interest allows.
Interpreters aren't just for programming language enthusiasts---they are the pattern underlying many of the most fun and compelling applications of Scala, such as Twitter's Stitch and our own Doodle graphics library. An interpreter arises whenever you separate the description of a computation from the process that carries it out. This separation allows you to change the semantics of the program, for instance adding caching in Stitch or applying artistic effects in Doodle. In fact you can view almost all of the patterns in functional programming as variations of the theme of interpreters.
In this workshop you will learn the main ways of writing interpreters, covering as many methods as time allows. References to applications will be shared along the way, while working on a simple example to ground the theory.
Code and setup instructions are available in this Github repo
You should have a laptop, your development environment of choice, and a good level of understanding of Scala.
YOU MAY ALSO LIKE:
- Scala eXchange London 2019 (in London on 12th - 13th December 2019)
- The Elements of Tagless Final Style (SkillsCast recorded in May 2019)
- Lightbend Akka for Scala - Professional (in London on 11th - 12th November 2019)
- Advanced Scala with Dick Wall (in London on 9th - 11th December 2019)
- Scalax2gether Community Day 2019 (in London on 14th December 2019)
- Code Kata: Yilin Wei - Optics with Monocle (in London on 22nd October 2019)
- Don’t keep it to yourself - openness and honesty in the workplace (in London on 30th October 2019)
- Abstract Data Types In The Region Of Abysmal Pain, And How To Navigate Them (SkillsCast recorded in September 2019)
- The Last Frontier and Beyond (SkillsCast recorded in August 2019)
Workshop: Building Interpreters in Scala
Noel is a founder of ScalaBridge London, and a Scala consultant at Inner Product and Underscore. In his day job he helps companies large and small achieve more with Scala. Outside of work he’s interested in generative art and machine learning.