publications

2023

  1. TOSEM
    What’s (Not) Working in Programmer User Studies?
    Matthew C. Davis, Emad Aghayi, Thomas D. LaToza, Xiaoyin Wang, Brad A. Myers, and Joshua Sunshine
    ACM Transactions on Software Engineering and Methodology (TOSEM), 2023.

2021

  1. UIST
    ReCode: A Lightweight Find-and-Replace Interaction in the IDE for Transforming Code by Example
    Wode Ni, Joshua Sunshine, Vu Le, Sumit Gulwani, and Titus Barik
    In Proc. Symposium on User Interface Software and Technology (UIST), 2021.
  2. CACM
    PL and HCI: Better Together
    Sarah E. Chasins, Elena L. Glassman, and Joshua Sunshine
    Commununications of the ACM (CACM), 2021.
  3. ECOOP
    Gradual Program Analysis for Null Pointers
    Sam Estep, Jenna Wise, Jonathan Aldrich, Tanter, Johannes Bader, and Joshua Sunshine
    In Proc. Europoean Conference on Object-Oriented Programming (ECOOP), 2021.
  4. TOCHI
    PLIERS: A Process That Integrates User-Centered Methods into Programming Language Design
    Michael Coblenz, Gauri Kambhatla, Paulette Koronkevich, Jenna L. Wise, Celeste Barnaby, Joshua Sunshine, Jonathan Aldrich, and Brad A. Myers
    ACM Transactions on Computer-Human Interaction (TOCHI), 2021.
  5. ICSE
    Containing Malicious Package Updates in npm with a Lightweight Permission System
    Gabriel Ferreira, Limin Jia, Joshua Sunshine, and Christian Kästner
    In Proc. International Conference on Software Engineering (ICSE), 2021.
  6. SANER
    FrameFix: Automatically Repairing Statically-Detected Directive Violations in Framework Applications
    Zack Coker, Joshua Sunshine, and Claire Le Goues
    2021.

2020

  1. OOPSLA
    Can advanced type systems be usable? An empirical study of ownership, assets, and typestate in obsidian
    Proceedings of the ACM on Programming Languages (OOPSLA), 2020. 🏆 Distinguished Artifact Award
  2. OOPSLA
    Gradual Verification of Recursive Heap Data Structures
    Jenna Wise, Johannes Bader, Cameron Wong, Jonathan Aldrich, Éric Tanter, and Joshua Sunshine
    Proceedings of the ACM on Programming Languages (OOPSLA), 2020.
  3. TOPLAS
    Obsidian: Typestate and Assets for Safer Blockchain Programming
    Michael Coblenz, Reed Oei, Tyler Etzel, Paulette Koronkevich, Miles Baker, Yannick Bloem, Brad A. Myers, Joshua Sunshine, and Jonathan Aldrich
    ACM Transactions on Programmming Languages and Systems (TOPLAS), 2020.
  4. SIGGRAPH
    Penrose: From Mathematical Notation to Beautiful Diagrams
    Katherine Ye, Wode Ni, Max Krieger, Dor Ma’ayan, Jenna Wise, Jonathan Aldrich, Joshua Sunshine, and Keenan Crane
    ACM Transaction on Graphics (SIGGRAPH), 2020.
  5. CHI
    How Domain Experts Create Conceptual Diagrams and Implications for Tool Design
    Dor Ma’ayan, Wode Ni, Katherine Ye, Chinmay Kulkarni, and Joshua Sunshine
    In Proc. of the Conference on Human Factors in Computing Systems (CHI), 2020. 🏆 Best Paper Honourable Mention
  6. PLATEAU
    Designing Declarative Language Tutorials: A Guided and Individualized Approach
    Anael Kuperwajs Cohen, Wode Ni, and Joshua Sunshine
    In Proc. Workshop at the Intersection Human-Computer Interaction and Programming Languages (PLATEAU), 2020.
  7. PLATEAU
    A Pilot Study of the Safety and Usability of the Obsidian Blockchain Programming Language
    Gauri Kambhatla, Michael Coblenz, Reed Oei, Joshua Sunshine, Jonathan Aldrich, and Brad A. Myers
    In Proc. Workshop at the Intersection Human-Computer Interaction and Programming Languages (PLATEAU), 2020.

2019

  1. WETSEB
    Smarter smart contract development tools
    In Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), 2019.
  2. ICSE NIER
    Detecting suspicious package updates
    Kalil Garrett, Gabriel Ferreira, Limin Jia, Joshua Sunshine, and Christian Kästner
    In Proc. International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER), 2019.
  3. VL/HCC
    Barriers to Reproducible Scientific Programming
    David Gray Widder, Joshua Sunshine, and Stephen Fickas
    In Proc. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2019.
  4. ICSME
    A qualitative study on framework debugging
    In IEEE International Conference on Software Maintenance and Evolution (ICSME), 2019.

2018

  1. Onward!
    Interdisciplinary programming language design
    In Proc. ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), 2018.
  2. FM
    IPL: An integration property language for multi-model cyber-physical systems
    Ivan Ruchkin, Joshua Sunshine, Grant Iraci, Bradley Schmerl, and David Garlan
    In Proc. International Symposium on Formal Methods (FM), 2018.
  3. SAC
    Experience report: Studying the readability of a domain specific language
    Johann Thor Mogensen Ingibergsson, Stefan Hanenberg, Joshua Sunshine, and Ulrik Pagh Schultz
    In Proc. ACM Symposium on Applied Computing (SAC), 2018.
  4. HCI Blockchain
    User-centered design of permissions, typestate, and ownership in the Obsidian blockchain language
    In Workshop on HCI for Blockchain: Studying, Designing, Critiquing and Envisioning Distributed Ledger Technologies, 2018.
  5. HCI Blockchain
    User-centered design of permissions, typestate, and ownership in the Obsidian blockchain language
    In Workshop on HCI for Blockchain: Studying, Designing, Critiquing and Envisioning Distributed Ledger Technologies, 2018.

2017

  1. ICSE
    Glacier: Transitive class immutability for Java
    Michael Coblenz, Whitney Nelson, Jonathan Aldrich, Brad Myers, and Joshua Sunshine
    In Proc. International Conference on Software Engineering (ICSE), 2017.
  2. OBT
    Designing extensible, domain-specific languages for mathematical diagrams
    Katherine Ye, Keenan Crane, Jonathan Aldrich, and Joshua Sunshine
    POPL Off the Beaten Track Workshop, 2017.
  3. DSLDI
    SUBSTANCE and STYLE: domain-specific languages for mathematical diagrams
    Domain-Specific Language Design and Implementation (DSLDI), 2017.
  4. SecDev
    Empirical studies on the security and usability impact of immutability
    Sam Weber, Michael Coblenz, Brad Myers, Jonathan Aldrich, and Joshua Sunshine
    In Proc. IEEE Cybersecurity Development (SecDev), 2017.
  5. PLATEAU
    A user study to inform the design of the obsidian blockchain dsl
    Celeste Barnaby, Michael Coblenz, Tyler Etzel, Eliezer Kanal, Joshua Sunshine, Brad Myers, and Jonathan Aldrich
    In Proc. Workshop at the Intersection Human-Computer Interaction and Programming Languages (PLATEAU), 2017.

2016

  1. PeerJ CS
    A systematic analysis of the science of sandboxing
    Michael Maass, Adam Sales, Benjamin Chung, and Joshua Sunshine
    PeerJ Computer Science, 2016.
  2. ICSE
    Exploring language support for immutability
    Michael Coblenz, Joshua Sunshine, Jonathan Aldrich, Brad Myers, Sam Weber, and Forrest Shull
    In Proc. International Conference on Software Engineering (ICSE), 2016.
  3. MSR
    Inter-app communication in android: Developer challenges
    Waqar Ahmad, Christian Kästner, Joshua Sunshine, and Jonathan Aldrich
    In Proc. Working Conference on Mining Software Repositories (MSR), 2016.
  4. ESEM
    Software development practices, barriers in the field and the relationship to software quality
    Beth Yost, Michael Coblenz, Brad Myers, Joshua Sunshine, Jonathan Aldrich, Sam Weber, Matthew Patron, Melissa Heeren, Shelley Krueger, and Mark Pfaff
    In Proc. ACM/IEEE Symposium on Empirical Software Engineering and Measurement (ESEM), 2016.

2015

  1. ICPC
    Searching the state space: A qualitative study of API protocol usability
    Joshua Sushine, James D Herbsleb, and Jonathan Aldrich
    In IEEE International Conference on Program Comprehension (ICPC), 2015.
  2. VL/HCC
    A course-based usability analysis of Cilk Plus and OpenMP
    Michael Coblenz, Robert Seacord, Brad Myers, Joshua Sunshine, and Jonathan Aldrich
    In Proc. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2015.
  3. ACSAC
    Evaluating the flexibility of the Java sandbox
    Zack Coker, Michael Maass, Tianyuan Ding, Claire Le Goues, and Joshua Sunshine
    In Proc. Annual Computer Security Applications Conference (ACSAC), 2015.
  4. PLATEAU
    Comparing transitive to non-transitive object immutability
    Michael Coblenz, Joshua Sunshine, Brad A Myers, Sam Weber, and Forrest Shull
    In Proc. Workshop at the Intersection Human-Computer Interaction and Programming Languages (PLATEAU), 2015.
  5. MobileDeLi
    Enforcing fine-grained security and privacy policies in an ecosystem within an ecosystem
    Waqar Ahmad, Joshua Sunshine, Christian Kästner, and Adam Wynne
    In Workshop on Mobile Development Lifecycle (MobileDeLi), 2015.

2014

  1. TOPLAS
    Æminium: A permission-based concurrent-by-default programming language approach
    Sven Stork, Karl Naden, Joshua Sunshine, Manuel Mohr, Alcides Fonseca, Paulo Marques, and Jonathan Aldrich
    ACM Transactions on Programmming Languages and Systems (TOPLAS), 2014.
  2. ECOOP
    Structuring documentation to support state search: A laboratory experiment about protocol programming
    Joshua Sunshine, James D Herbsleb, and Jonathan Aldrich
    In Proc. Europoean Conference on Object-Oriented Programming (ECOOP), 2014.
  3. PLATEAU
    Considering Productivity Effects of Explicit Type Declarations
    In Proc. Workshop at the Intersection Human-Computer Interaction and Programming Languages (PLATEAU), 2014.
  4. PLATEAU
    Usability Hypotheses in the Design of Plaid
    Joshua Sunshine, and Jonathan Aldrich
    In Proc. Workshop at the Intersection Human-Computer Interaction and Programming Languages (PLATEAU), 2014.

2013

  1. PhD Thesis
    Protocol Programmability
    Joshua Sunshine
    2013.

2012

  1. Technical Report
    The Plaid language: Typed core specification
    Jonathan Aldrich, Nels E Beckman, Robert Bocchino, Karl Naden, Darpan Saini, Sven Stork, and Joshua Sunshine
    2012.

2011

  1. OOPSLA
    First-class state change in plaid
    Joshua Sunshine, Karl Naden, Sven Stork, Jonathan Aldrich, and Éric Tanter
    In Proc. ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications (OOSPLA), 2011.
  2. ICSE NIER
    Permission-based programming languages
    Jonathan Aldrich, Ronald Garcia, Mark Hahnenberg, Manuel Mohr, Karl Naden, Darpan Saini, Sven Stork, Joshua Sunshine, Éric Tanter, and Roger Wolff
    In Proc. International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER), 2011.

2010

  1. FTfJP
    A theory of typestate-oriented programming
    Darpan Saini, Joshua Sunshine, and Jonathan Aldrich
    In Proc. Workshop on Formal Techniques for Java-Like Programs (FTfJP), 2010.
  2. APLWACA
    DynXML: Safely programming the dynamic web
    Joshua Sunshine, and Jonathan Aldrich
    In Proc. Workshop on Analysis and Programming Languages for Web Applications and Cloud Applications (APLWACA), 2010.

2009

  1. USENIX security
    Crying Wolf: An Empirical Study of SSL Warning Effectiveness.
    Joshua Sunshine, Serge Egelman, Hazim Almuhimedi, Neha Atri, and Lorrie Faith Cranor
    In Proc. USENIX security symposium, 2009.
  2. Onward!
    Typestate-oriented programming
    Jonathan Aldrich, Joshua Sunshine, Darpan Saini, and Zachary Sparks
    In Proc. ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), 2009.
  3. DO21
    Language support for distributed proxies
    Darpan Saini, Joshua Sunshine, and Jonathan Aldrich
    In Proc. Workshop on Distributed Objects for the 21st Century (DO21), 2009.

2002

  1. EMBO Journal
    Molecular architecture and mechanism of an icosahedral pyruvate dehydrogenase complex: a multifunctional catalytic machine
    Jacqueline LS Milne, Dan Shi, Peter B Rosenthal, Joshua S Sunshine, Gonzalo J Domingo, Xiongwu Wu, Bernard R Brooks, Richard N Perham, Richard Henderson, and Sriram Subramaniam
    The EMBO journal, 2002.