• Carnegie Mellon University
  • Software and Societal Systems
  • TCS Hall 224

Research

The Rust programming language is incredibly popular because it is fast and can statically eliminate memory safety errors. However, most critical systems code is still written in C and C++. To interoperate with these applications, Rust developers need to use a set of unsafe features that bypass Rust’s safety restrictions. If these features are used incorrectly, they can cause unique types of bugs by breaking rules of Rust’s aliasing model. [Miri], a Rust interpreter, is the only tool that can detect these bugs, but it is slow and does not support most foreign function calls.

I am researching and designing methods for finding aliasing bugs in multi-language Rust applications. My goal is to leverage symbolic analysis to reduce the overhead of dynamic instrumentation and provide guarantees of soundness.

Recent Publications

Preprint

A Mixed-Methods Study on the Implications of Unsafe Rust for Interoperation, Encapsulation, and Tooling

Ian McCormack, Tomas Dougan, Sam Estep, Hanan Hibshi, Jonathan Aldrich, Joshua Sunshine

Preprint

A Study of Undefined Behavior Across Foreign Function Boundaries in Rust Libraries

Ian McCormack, Joshua Sunshine, Jonathan Aldrich

Education

I attended the University of Wisconsin-Eau Claire from 2017 to 2021. I completed a double major in Computer Science and English with a minor in Mathematics. I was introduced to Computer Science research by Chris Johnson, and I helped contribute to the design of Twoville: a direct manipulation programming system for computer science education.

In 2020, I was accepted into CMU’s REUSE program, where I joined a collaboration between CMU and Arizona State University. We created TTPython, a macroprogramming systems for the Internet of Things. We used our prototype to implement a mock autonomous vehicle intersection and observed significantly reduced latency compared to a prior approach.

I began my PhD in Software Engineering at CMU in September, 2021. My current research on Rust is funded by the National Science Foundation’s Graduate Research Fellowship Program (GRFP). I’m advised by Jonathan Aldrich and Joshua Sunshine in S3D.