FlowSpec: A Declarative Specification Language for Intra-Procedural Flow-Sensitive Data-Flow Analysis

Jeff Smits, Guido Wachsmuth, Eelco Visser
2019 Journal of Computer Languages  
Data-flow analysis is the static analysis of programs to estimate their approximate run-time behavior or approximate intermediate run-time values. It is an integral part of modern language specifications and compilers. In the specification of static semantics of programming languages, the concept of data-flow allows the description of well-formedness such as definite assignment of a local variable before its first use. In the implementation of compiler back-ends, data-flow analyses inform
more » ... zations. • Data-flow analysis has an established theoretical foundation. What lags behind is implementations of data-flow analysis in compilers, which are usually ad-hoc. This makes such implementations difficult to extend and maintain. In previous work researchers have proposed higher-level formalisms suitable for wholeprogram analysis in a separate tool, incremental analysis within editors, or bound to a specific intermediate representation.
doi:10.1016/j.cola.2019.100924 fatcat:kclleykm3vfd3hd7t7n7jf6uau