A Unified Lattice Model and Framework for Purity Analyses
Autor: | Michael Reif, Dominik Helm, Mira Mezini, Florian Kübler, Michael Eichberg |
---|---|
Jazyk: | angličtina |
Rok vydání: | 2019 |
Předmět: |
Theoretical computer science
Computer science Concurrency Static Analysis Lattice Code smell 020207 software engineering 02 engineering and technology Static analysis Purity 020204 information systems Lattice (order) Scalability 0202 electrical engineering electronic engineering information engineering Side-effects Use case Formal verification Java |
Zdroj: | ASE |
DOI: | 10.18420/se2019-10 |
Popis: | This paper was presented in 2018 at the 33rd ACM/IEEE International Conference on Automated Software Engineering and proposes a framework for purity analyses. Analyzing methods in object-oriented programs whether they are side-effect free and also deterministic, i.e., mathematically pure, has been the target of extensive research. Identifying such methods helps to find code smells and security related issues, and helps analyses detecting concurrency bugs. Pure methods are further used for formal specifications and proving the pureness is necessary to ensure correct specifications. However, no common terminology exists which describes the purity of methods. Furthermore, some terms (e.g., pure or side-effect free) are used inconsistently. Further, all current approaches only report selected purity information making them only suitable for a smaller subset of the potential use cases. We present a fine-grained unified lattice model which puts the purity levels found in the literature into relation and which adds a new level that generalizes existing definitions. We have also implemented a scalable, modularized purity analysis which produces significantly more precise results for real-world programs than the best-performing related work. The analysis shows that all defined levels are found in real-world projects. |
Databáze: | OpenAIRE |
Externí odkaz: |