Dataflow Analysis in a Language Workbench
Master Project of Matthijs Bijman


Abstract

Dataflow analysis is a powerful tool used for program optimization, static analysis, and editor services for many programming languages. Spoofax, a language workbench, contains a domain-specific language called FlowSpec for the definition of control-flow and dataflow semantics that language developers can use to implement dataflow analyses for their language. FlowSpec however cannot be used to efficiently optimize programs. Other solutions are not suitable for language developers, or lack the ergonomics of a domain-specific language. In this thesis we present Flock: an incremental implementation of FlowSpec. We analyze the performance of Flock and show that it is efficient enough for use in optimization pipelines. Flock gives language developers the tools to succinctly write dataflow analyses for a wide variety of applications.

Thesis


Dataflow Analysis in a Language Workbench

Student: Matthijs Bijman
Supervisor(s): Jeff Smits, Soham Chakraborty, Eelco Visser
Defended: June 29, 2022