Michelle Davies Thalakottur (she/her)
Ph.D. Student at Programming Research Laboratory
Northeastern University, Khoury College of Computer Sciences
michelledaviest@gmail.com
CV |
Github |
LinkedIn
I'm a PhD student advised by Frank Tip and Amal Ahmed at Northeastern University. Most (read: all) of my current work revolves around WebAssembly. I study WebAssembly[1][2], analyze WebAssembly[3], compile to WebAssembly[4] and wonder what would happen if compilers didn't throw away all source type information so that my job would be easier. I generally like working with low-level languages though maybe one day I will wander away from Wasm. Inventing solutions to hard problems brings me a lot of joy, so I gravitate toward research that lets me do that. Before my PhD, I worked on compiler generation and data flow analysis with Uday Khedker at IIT Bombay. I have also spent a non-trivial amount of my time working on making research more accessible to undergrad students and building community within Northeastern's Computer Science college.
Outside of research, I swim, lift weights and climb mountains, all to stave off the ruinous effect of computers on my thoracic spine. I love to sing (I'm a very enthusiastic karaoke partner) and like to read pretty widely. I will happily talk your ear off about migraines.
Most of my PhD work has been on static analysis of WebAssembly, with a focus on call graph construction. WebAssembly is a portable, low-level binary instruction format designed as a compilation target for languages such as C/C++, Rust, and Go, enabling high-performance applications to run on the web alongside JavaScript and in other sandboxed environments. Its low-level nature, unstructured linear memory, and interoperation with dynamic host languages like JavaScript make precise static analysis hard. I am interested in the idea that precise analysis of WebAssembly binaries is impractical in isolation but becomes tractable once grounded in real-world context - how a binary is actually used, the pointer-and-number structure latent in its memory and integer values, and the richer type and value information available in its host. My papers and ongoing work explore different facets of this idea. I have also contributed to RichWasm, a semantic IR for safe, fine-grained interoperability between richly typed source languages (ML, L3) and WebAssembly, where I worked on the compiler from RichWasm to Wasm.
Before my PhD, I worked with Uday Khedker at IIT Bombay on compiler generation and data flow analysis. My undergraduate thesis formalized the translations of a teaching compiler called SCLP and generated code from those specs; this line of work is being carried forward by other students in his group. In the summer of 2020 I worked on efficiently storing and operating on an incrementally discovered sparse family of sets, with the goal of scaling data flow analyses. The summer before that I visited IIT Patna and worked on problems in dimensionality reduction with Jimson Mathew's lab.