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).