Refreshments 3:20 p.m.
Abstract
Almost all of the tools for software construction, optimization,
parallelization, verification, security, and understanding, depend
upon the foundation of flow analysis, a ubiquitous and much-studied
component of programming language technology. But modern software
consists of increasingly larger code-bases written in languages that
are higher-order. If the programming languages community is going to
meet the paramount challenge of enabling effective construction of
reliable software, our tools must scale to large code-bases and
accommodate the higher-order nature of languages. Therefore, the
scalability and applicability of our tools depend upon the scalability
and applicability of flow analysis.
In this talk, I will provide new insights into the limitations of
higher-order program analysis and describe how to leverage these
insights to design new approaches. I will sketch these new ideas and argue why they lower verification costs, accommodate sophisticated
language features, and can reason about modular programs; all of which
contribute to the wide applicability of flow analysis and the
verification, optimization, and understanding tools that require flow
analysis.