log in  |  register  |  feedback?  |  help  |  web accessibility
Logo
Static Analysis with Introspective Polyvariance
Wednesday, April 20, 2016, 11:00 am-12:00 pm Calendar
  • You are subscribed to this talk through .
  • You are watching this talk through .
  • You are subscribed to this talk. (unsubscribe, watch)
  • You are watching this talk. (unwatch, subscribe)
  • You are not subscribed to this talk. (watch, subscribe)
Abstract
Static analysis of dynamic and functional programming languages requires a precise accounting of various interpenetrating concerns. For example, in functional languages like Racket, a precise analysis of data flow (for closures) is required for a precise analysis of control flow, and in dynamic scripting languages like JavaScript, a precise modeling of hashmaps and their keys is required for every use of an object's fields and methods. For each of these concerns, a careful compromise must be struck between precision and complexity for an analysis to provide useful information at a reasonable computational cost.
 
In this talk, I will review abstracting abstract machines (AAM), a general methodology for deriving a static analysis from a language's concrete (exact) semantics, and show how this approach may be extended to the notion of polyvariance. Specific polyvariant techniques such as call sensitivity, object sensitivity, and argument sensitivity, represent strategies for managing the trade-off between precision and complexity in an analysis and may be well suited for one program, while being both expensive and ineffective on another. I will show how a single function in AAM-style analyses, an allocator, can be used to both unify and generalize this class of techniques. I will then apply this new perspective to developing an introspective polyvariant technique which guarantees perfect stack precision (i.e., no conflation of return flows) for free---that is, at no asymptotic complexity overhead and requiring only the replacement of an allocation function, a trivial change in AAM-style analyses.
Bio

Thomas Gilray recently defended his PhD thesis at the University of Utah.  His primary research area is static analysis of higher-order languages (also called control-flow analysis). More broadly, his interests include semantics, language design, compilers and implementations, safety and verification, parallelism and high-performance solvers (e.g., constraint solving on the GPU).  His recent paper at the International Supercomputing Conference won the the PRACE ISC award and his paper at Trends in Functional Programming in 2013 won the best student paper award.

This talk is organized by David Van Horn