activity
20172026
most citedCan Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian

15 citations · 61 across the 12 of their papers we have counts for

collaborators
Showing cs.SEShow all

6 papers · 1 filter

cs.SE2024★ 5 cited

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

Ian McCormack, Joshua Sunshine, Jonathan Aldrich

Developers rely on the static safety guarantees of the Rust programming language to write secure and performant applications. However, Rust is frequently used to interoperate with…

cs.SE2024

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

Ian McCormack, Tomas Dougan, Sam Estep +3

The Rust programming language restricts aliasing to provide static safety guarantees. However, in certain situations, developers need to bypass these guarantees by using a set of u…

cs.SE2023★ 13 cited

Can Large Language Models Write Good Property-Based Tests?

Vasudev Vikram, Caroline Lemieux, Joshua Sunshine +1

Property-based testing (PBT), while an established technique in the software testing research community, is still relatively underused in real-world software. Pain points in writin…

cs.SE2020★ 15 cited

Can Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian

Michael Coblenz, Jonathan Aldrich, Joshua Sunshine +1

Some blockchain programs (smart contracts) have included serious security vulnerabilities. Obsidian is a new typestate-oriented programming language that uses a strong type system…

cs.SE2019

Design Dimensions for Software Certification: A Grounded Analysis

Gabriel Ferreira, Christian Kästner, Joshua Sunshine +2

In many domains, software systems cannot be deployed until authorities judge them fit for use in an intended operating environment. Certification standards and processes have been…

cs.SE2018

Debugging Framework Applications: Benefits and Challenges

Zack Coker, David Gray Widder, Claire Le Goues +2

Aspects of frameworks, such as inversion of control and the structure of framework applications, require developers to adjust their debugging strategies as compared to debugging se…