I am a Ph.D. student in the
Programming Languages Lab, working with
Olin Shivers.
The focus of my PhD work is CFA2, a new flow analysis for functional languages. CFA2 is the first flow analysis with unbounded call/return matching in the presence of hard-to-analyze language features, such as first-class functions, tail calls and first-class control. It provides precise dataflow information and is also suitable for stack-related optimizations, such as stack-allocation of closure environments.
As a summer intern at Mozilla, I
implemented CFA2 for JavaScript and used it for type inference (demo
here). The analysis has become the core component of
DoctorJS, Mozilla's suite of static-analysis tools for JavaScript.
Pushdown Flow Analysis of First-Class Control.
CFA2: a Context-Free Approach to Control-Flow Analysis.
Dimitrios Vardoulakis and Olin Shivers
Logical Methods in Computer Science, Vol. 7 (2:3), May 2011.
[pdf] [bib]
Ordering Multiple Continuations on the Stack.
CFA2: a Context-Free Approach to Control-Flow Analysis.
DDP for CFA.
Olin Shivers, Dimitrios Vardoulakis and Alexander Spoon
Symposium in Honor of Mitchell Wand, August 2009. Paper in preparation.
[slides]
A compositional trace semantics for Orc.
A compositional trace semantics for Orc (short version).