
Assistant Professor @Wellesley computer science. @CornellCIS PhD. Compilers + lightweight formal methods. she/her. [email protected] https://xitter.cf/t.co/9UVghNn4e5
- Tweets666
- Following1K
- Followers1.6K
- Likes4.4K

ALT Screenshots of key figures from my research. Top-left: eye-tracking data of programmers' tracing strategies. Center: visualizations of the static and dynamic semantics of Rust. Right: an IDE plugin and formal semantics for analyzing information flow in Rust programs. Bottom-left: a new document language, Nota.

ALT Alexa and Adrian standing in front of a slide reading "Lightweight formal methods for correct, efficient systems programming. Alexa VanHattum. B Exam: PhD Defense. May 15, 2023. Cornell University. Spanning joint work with Adrian Sampson, Rachit Nigam, Vincent T. Lee, James Bornholt, Daniel Schwartz-Narbonne, Nathan Chong, Monica Pardeshi, Chris Fallin, and Fraser Brown"

ALT The R programming language is widely used in large-scale data analyses. It contains especially rich built-in support for dealing with vectors, arrays, and matrices. These operations feature prominently in the applications that form R's raison d'être, making their behavior worth understanding. Furthermore, ostensibly for programmer convenience, their behavior in R is a notable extension over the corresponding operations in mathematics, thereby offering some challenges for specification and static verification. We report on progress towards statically typing this aspect of the R language. The interesting aspects of typing, in this case, warn programmers about violating bounds, so the types must necessarily be dependent. We explain the ways in which R extends standard mathematical behavior. We then show how R's behavior can be specified in LiquidHaskell, a dependently-typed extension to Haskell. In the general case, actually verifying library and client code is currently beyond LiquidHask




















