Research Assistant: Faster Rust Dynamic Analysis

Updated: about 15 hours ago
Location: Campus, ILLINOIS
Job Type: PartTime

Job Title:

Research Assistant: Faster Rust Dynamic Analysis

Job Summary:

Research assistant to help implement make faster Rust dynamic analysis tools like MIRI.

Full Job Description:


Research Topic

Most infrastructure software nowadays is written in the C programming language, mainly because C allows a tight control of resources like memory. However, to this end, C disavows language-level features such as memory safety which means that programmers can inadvertently create subtle yet severe bugs in their programs. As an example, even the NSA published an advisory against it recently: “NSA advises organizations to consider making a strategic shift from programming languages that provide little or no inherent memory protection, such as C/C++, to a memory safe language when possible.”

Rust is an example of such a safe language that provides the same level of fine-grained control over resources while making sure that there are no memory safety issues through a set of checks. However, moving from C to Rust is a rocky road: it requires the software engineers to reason about memory with care.

We are seeking to make this transition smoother by building tools that help software engineers. We have been approaching this problem using logical reasoning without running the programs so far. Now, we are looking for someone to complement this by analyzing the program as it runs and finding memory bugs. Help us eliminate a huge headache for software engineers one bug at a time.


Qualification

This position is open to USF students in good academic standing. Strong applicants will satisfy the following requirements:

  • Familiarity with the theory of programming languages or implementation of compilers and interpreters (e.g., having taken CS 345, CS 414 or CS 652).

  • Familiarity with either Rust or C++, including how automatic memory management works in either language.


Duties

Your duties as an RA are:

  • Attend weekly meetings with the supervisors.

  • Become familiar with the inner workings of existing tools in this domain such as MIRI, and how they model Rust’s borrow checker.

  • Read relevant academic papers.

  • Implement new and faster variants of these tools like a JIT compiler for MIRI or new lightweight dynamic analyses.

  • Conduct experiments using the aforementioned analyses to measure their effectiveness in finding bugs in both qualitative and quantitative manners.

  • Help write and present the findings resulting from these experiments, including potentially drafting a conference paper or presenting on it at venues such as CARD, CS Night, student research competitions, and academic conferences.

This position is for the Spring 2024 semester, however it may extend into the Summer 2024 semester depending on the start date. Upon successful completion of the work and getting positive findings, you will be invited to be a co-author on a research paper on this work.

Full-Time/Part-Time:

Part time

Pay Rate:

Hourly

Salary Range :

$18.07/hr

Similar Positions