Improving control-flow analysis of higher-order languages

Update Item Information
Publication Type dissertation
School or College College of Engineering
Department Computing
Author Lyde, Steven
Title Improving control-flow analysis of higher-order languages
Date 2015
Description Control-flow analysis of higher-order languages is a difficult problem, yet an important one. It aids in enabling optimizations, improved reliability, and improved security of programs written in these languages. This dissertation explores three techniques to improve the precision and speed of a small-step abstract interpreter: using a priority work list, environment unrolling, and strong function call. In an abstract interpreter, the interpreter is no longer deterministic and choices can be made in how the abstract state space is explored and trade-offs exist. A priority queue is one option. There are also many ways to abstract the concrete interpreter. Environment unrolling gives a slightly different approach than is usually taken, by holding off abstraction in order to gain precision, which can lead to a faster analysis. Strong function call is an approach to clean up some of the imprecision when making a function call that is introduced when abstractly interpreting a program. An alternative approach to building an abstract interpreter to perform static analysis is through the use of constraint solving. Existing techniques to do this have been developed over the last several decades. This dissertation maps these constraints to three different problems, allowing control-flow analysis of higher-order languages to be solved with tools that are already mature and well developed. The control-flow problem is mapped to pointer analysis of first-order languages, SAT, and linear-algebra operations. These mappings allow for fast and parallel implementations of control-flow analysis of higher-order languages. A recent development in the field of static analysis has been pushdown control-flow analysis, which is able to precisely match calls and returns, a weakness in the existing techniques. This dissertation also provides an encoding of pushdown control-flow analysis to linear-algebra operations. In the process, it demonstrates that under certain conditions (monovariance and flow insensitivity) that in terms of precision, a pushdown control-flow analysis is in fact equivalent to a direct style constraint-based formulation.
Type Text
Publisher University of Utah
Dissertation Name Doctor of Philosophy in Computer Science
Language eng
Rights Management ©Steven Lyde
Format Medium application/pdf
Format Extent 27,448 bytes
Identifier etd3/id/3981
ARK ark:/87278/s6qg2264
Setname ir_etd
ID 197531
Reference URL https://collections.lib.utah.edu/ark:/87278/s6qg2264
Back to Search Results