Print Email Facebook Twitter FlowSpec Title FlowSpec: A declarative specification language for intra-procedural flow-Sensitive data-flow analysis Author Smits, J. (TU Delft Programming Languages) Wachsmuth, G.H. (Oracle Labs) Visser, Eelco (TU Delft Programming Languages) Date 2020 Abstract 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 optimizations. 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 whole-program analysis in a separate tool, incremental analysis within editors, or bound to a specific intermediate representation. In this paper, we present FlowSpec, an executable formalism for specification of data-flow analysis. FlowSpec is a domain-specific language that enables direct and concise specification of data-flow analysis for programming languages, designed to express flow-sensitive, intra-procedural analyses. We define the formal semantics of FlowSpec in terms of monotone frameworks. We describe the design of FlowSpec using examples of standard analyses. We also include a description of our implementation of FlowSpec. In a case study we evaluate FlowSpec with the static analyses for Green-Marl, a domain-specific programming language for graph analytics. To reference this document use: http://resolver.tudelft.nl/uuid:c5e74433-05bc-4e13-8872-80a0f97a7b69 DOI https://doi.org/10.1016/j.cola.2019.100924 ISSN 2590-1184 Source Journal of Computer Languages, 57, 1-39 Part of collection Institutional Repository Document type journal article Rights © 2020 J. Smits, G.H. Wachsmuth, Eelco Visser Files PDF 1_s2.0_S2590118419300474_main.pdf 6.91 MB Close viewer /islandora/object/uuid:c5e74433-05bc-4e13-8872-80a0f97a7b69/datastream/OBJ/view