Bridging Static and Dynamic Program Analysis using Fuzzy Logic
Autor: | Josef Svenningsson, Jacob Lidman |
---|---|
Rok vydání: | 2017 |
Předmět: |
FOS: Computer and information sciences
Computer Science - Logic in Computer Science Theoretical computer science Property (programming) Computer science F.3 G.3 Static program analysis computer.software_genre Fuzzy logic lcsh:QA75.5-76.95 Set (abstract data type) Computer Science - Software Engineering Program analysis Classifier (linguistics) Dynamic program analysis D.3.0 Computer Science - Programming Languages D.2.4 F.1.2 lcsh:Mathematics lcsh:QA1-939 Logic in Computer Science (cs.LO) Software Engineering (cs.SE) Compiler lcsh:Electronic computers. Computer science computer Programming Languages (cs.PL) |
Zdroj: | Electronic Proceedings in Theoretical Computer Science, Vol 250, Iss Proc. QAPL 2017, Pp 111-126 (2017) QAPL@ETAPS |
DOI: | 10.48550/arxiv.1707.04127 |
Popis: | Static program analysis is used to summarize properties over all dynamic executions. In a unifying approach based on 3-valued logic properties are either assigned a definite value or unknown. But in summarizing a set of executions, a property is more accurately represented as being biased towards true, or towards false. Compilers use program analysis to determine benefit of an optimization. Since benefit (e.g., performance) is justified based on the common case understanding bias is essential in guiding the compiler. Furthermore, successful optimization also relies on understanding the quality of the information, i.e. the plausibility of the bias. If the quality of the static information is too low to form a decision we would like a mechanism that improves dynamically. We consider the problem of building such a reasoning framework and present the fuzzy data-flow analysis. Our approach generalize previous work that use 3-valued logic. We derive fuzzy extensions of data-flow analyses used by the lazy code motion optimization and unveil opportunities previous work would not detect due to limited expressiveness. Furthermore we show how the results of our analysis can be used in an adaptive classifier that improve as the application executes. Comment: In Proceedings QAPL 2017, arXiv:1707.03668 |
Databáze: | OpenAIRE |
Externí odkaz: |