Dataflow Analysis in a Language Workbench
Date: Wed, June 29, 2022
Room: Lecture Hall F (building 36) / Matthijs' Zoom Room
Note: This is a MSc thesis defense
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 succintly write dataflow analyses for a wide variety of applications.