Jonathan Aldrich

Orcid: 0000-0003-0631-5591

Affiliations:
  • Carnegie Mellon University, Pittsburgh, PA, USA
  • University of Washington, Seattle, WA, USA (PhD 2003)


According to our database1, Jonathan Aldrich authored at least 139 papers between 1998 and 2024.

Collaborative distances:

Timeline

Legend:

Book 
In proceedings 
Article 
PhD thesis 
Dataset
Other 

Links

Online presence:

On csauthors.net:

Bibliography

2024
Sound Gradual Verification with Symbolic Execution.
Proc. ACM Program. Lang., January, 2024

2023
Gradual Verification for Smart Contracts.
CoRR, 2023

Latte: Lightweight Aliasing Tracking for Java.
CoRR, 2023

2022
Bounded Abstract Effects.
ACM Trans. Program. Lang. Syst., 2022

Plan B: Design Methodology for Cyber-Physical Systems Robust to Timing Failures.
ACM Trans. Cyber Phys. Syst., 2022

Static Information Flow Control Made Simpler.
CoRR, 2022

Gradual C0: Symbolic Execution for Efficient Gradual Verification.
CoRR, 2022

Technical perspective: How do experts learn new programming languages?
Commun. ACM, 2022

Derivations with Holes for Concept-Based Program Synthesis.
Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, 2022

2021
PLIERS: A Process that Integrates User-Centered Methods into Programming Language Design.
ACM Trans. Comput. Hum. Interact., 2021

An Empirical Study of Protocols in Smart Contracts.
CoRR, 2021

Integrating usability into programming language design (keynote).
Proceedings of the SLE '21: 14th ACM SIGPLAN International Conference on Software Language Engineering, Chicago, IL, USA, October 17, 2021

Facilitating Connector Evolution With Architecture-Centric Development.
Proceedings of the 18th IEEE International Conference on Software Architecture Companion, 2021

Gradual Program Analysis for Null Pointers.
Proceedings of the 35th European Conference on Object-Oriented Programming, 2021

2020
Obsidian: Typestate and Assets for Safer Blockchain Programming.
ACM Trans. Program. Lang. Syst., 2020

Penrose: from mathematical notation to beautiful diagrams.
ACM Trans. Graph., 2020

Gradual verification of recursive heap data structures.
Proc. ACM Program. Lang., 2020

Decidable subtyping for path dependent types.
Proc. ACM Program. Lang., 2020

Can advanced type systems be usable? An empirical study of ownership, assets, and typestate in Obsidian.
Proc. ACM Program. Lang., 2020

User-Centered Programming Language Design: A Course-Based Case Study.
CoRR, 2020

Psamathe: A DSL with Flows for Safe Blockchain Assets.
CoRR, 2020

An Empirical Study of Ownership, Typestate, and Assets in the Obsidian Smart Contract Language.
CoRR, 2020

A case study in language-based security: building an I/O library for Wyvern.
Proceedings of the 2020 ACM SIGPLAN International Symposium on New Ideas, 2020

Syntactically Restricting Bounded Polymorphism for Decidable Subtyping.
Proceedings of the Programming Languages and Systems - 18th Asian Symposium, 2020

2019
Model-Based Adaptation for Robotics Software.
IEEE Softw., 2019

User-Centered Programming Language Design in the Obsidian Smart Contract Language.
CoRR, 2019

A Pilot Study of the Safety and Usability of the Obsidian Blockchain Programming Language.
Proceedings of the 10th Workshop on Evaluation and Usability of Programming Languages and Tools, 2019

Smarter smart contract development tools.
Proceedings of the 2nd International Workshop on Emerging Trends in Software Engineering for Blockchain, 2019

2018
Reasonably programmable literal notation.
Proc. ACM Program. Lang., 2018

Gradual Program Verification.
Proceedings of the Verification, Model Checking, and Abstract Interpretation, 2018

Interdisciplinary programming language design.
Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, 2018

Capabilities: Effects for Free.
Proceedings of the Formal Methods and Software Engineering, 2018

Using object capabilities and effects to build an authority-safe module system: poster.
Proceedings of the 5th Annual Symposium and Bootcamp on Hot Topics in the Science of Security, 2018

2017
A Capability-Based Module System for Authority Control (Artifact).
Dagstuhl Artifacts Ser., 2017

Toward Semantic Foundations for Program Editors.
Proceedings of the 2nd Summit on Advances in Programming Languages, 2017

Empirical Studies on the Security and Usability Impact of Immutability.
Proceedings of the IEEE Cybersecurity Development, SecDev 2017, Cambridge, MA, USA, 2017

Hazelnut: a bidirectionally typed structure editor calculus.
Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, 2017

Glacier: transitive class immutability for Java.
Proceedings of the 39th International Conference on Software Engineering, 2017

The Implementation of Object Propositions: The Oprop Verification Tool.
Proceedings of the Formal Aspects of Component Software - 14th International Conference, 2017

A Capability-Based Module System for Authority Control.
Proceedings of the 31st European Conference on Object-Oriented Programming, 2017

2016
Inter-app communication in Android: developer challenges.
Proceedings of the 13th International Conference on Mining Software Repositories, 2016

Exploring language support for immutability.
Proceedings of the 38th International Conference on Software Engineering, 2016

Modules in wyvern: advanced control over security and privacy.
Proceedings of the Symposium and Bootcamp on the Science of Security, 2016

Programmable semantic fragments: the design and implementation of typy.
Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, 2016

Software Development Practices, Barriers in the Field and the Relationship to Software Quality.
Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, 2016

Composing Interfering Abstract Protocols.
Proceedings of the 30th European Conference on Object-Oriented Programming, 2016

2015
A Theory of Tagged Objects (Artifact).
Dagstuhl Artifacts Ser., 2015

A course-based usability analysis of Cilk Plus and OpenMP.
Proceedings of the 2015 IEEE Symposium on Visual Languages and Human-Centric Computing, 2015

Composable and hygienic typed syntax macros.
Proceedings of the 30th Annual ACM Symposium on Applied Computing, 2015

Cooperative Exceptions for Concurrent Objects.
Proceedings of the 21st IEEE Pacific Rim International Symposium on Dependable Computing, 2015

Searching the state space: a qualitative study of API protocol usability.
Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension, 2015

A Theory of Tagged Objects.
Proceedings of the 29th European Conference on Object-Oriented Programming, 2015

2014
Æminium: A Permission-Based Concurrent-by-Default Programming Language Approach.
ACM Trans. Program. Lang. Syst., 2014

Foundations of Typestate-Oriented Programming.
ACM Trans. Program. Lang. Syst., 2014

A case study on the lightweight verification of a multi-threaded task server.
Sci. Comput. Program., 2014

Brazilian Symposium on Programming Languages (SBLP 2010).
Sci. Comput. Program., 2014

Substructural typestates.
Proceedings of the 2014 ACM SIGPLAN Workshop on Programming Languages meets Program Verification, 2014

Usability Hypotheses in the Design of Plaid.
Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools, 2014

Wyvern: Impacting Software Security via Programming Language Design.
Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools, 2014

Statically typed string sanitation inside a python.
Proceedings of the 2014 International Workshop on Privacy & Security in Programming, 2014

Considering Productivity Effects of Explicit Type Declarations.
Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools, 2014

Collaborative infrastructure for test-driven scientific model validation.
Proceedings of the 36th International Conference on Software Engineering, 2014

In-nimbo sandboxing.
Proceedings of the 2014 Symposium and Bootcamp on the Science of Security, 2014

Type-specific languages to fight injection attacks.
Proceedings of the 2014 Symposium and Bootcamp on the Science of Security, 2014

Object Propositions.
Proceedings of the FM 2014: Formal Methods, 2014

Structuring Documentation to Support State Search: A Laboratory Experiment about Protocol Programming.
Proceedings of the ECOOP 2014 - Object-Oriented Programming - 28th European Conference, Uppsala, Sweden, July 28, 2014

Safely Composable Type-Specific Languages.
Proceedings of the ECOOP 2014 - Object-Oriented Programming - 28th European Conference, Uppsala, Sweden, July 28, 2014

Rely-Guarantee Protocols.
Proceedings of the ECOOP 2014 - Object-Oriented Programming - 28th European Conference, Uppsala, Sweden, July 28, 2014

2013
A Retrospective on Aliasing Type Systems: 2012-2022.
Proceedings of the Aliasing in Object-Oriented Programming. Types, 2013

The power of interoperability: why objects are inevitable.
Proceedings of the ACM Symposium on New Ideas in Programming and Reflections on Software, 2013

Type-directed, whitespace-delimited parsing for embedded DSLs.
Proceedings of the First Workshop on the Globalization of Domain Specific Languages, 2013

Introducing tool-supported architecture review into software design education.
Proceedings of the 26th International Conference on Software Engineering Education and Training, 2013

2012
Verification of Snapshotable Trees Using Access Permissions and Typestate.
Proceedings of the Objects, Models, Components, Patterns - 50th International Conference, 2012

A type system for borrowing permissions.
Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2012

19th international workshop on foundations of object-oriented languages (FOOL'12).
Proceedings of the SPLASH'12, 2012

Statically checking API protocol conformance with mined multi-object specifications.
Proceedings of the 34th International Conference on Software Engineering, 2012

2011
Changing state in the plaid language.
Proceedings of the Companion to the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2011

First-class state change in plaid.
Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2011

Are object protocols burdensome?: an empirical study of developer forums.
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools, 2011

2011 international workshop on foundations of object-oriented languages (fool'11): splash/oopsla '11 workshop summary.
Proceedings of the Companion to the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2011

Plaid: a permission-based programming language.
Proceedings of the Companion to the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2011

Permission-based programming languages.
Proceedings of the 33rd International Conference on Software Engineering, 2011

Gradual Typestate.
Proceedings of the ECOOP 2011 - Object-Oriented Programming, 2011

An Empirical Study of Object Protocols in the Wild.
Proceedings of the ECOOP 2011 - Object-Oriented Programming, 2011

2010
Verifying event-driven programs using ramified frame properties.
Proceedings of TLDI 2010: 2010 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation, 2010

2010 international workshop on foundations of object-oriented languages (FOOL'10): SPLASH/OOPSLA'10 workshop summary.
Proceedings of the Companion to the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2010

A theory of typestate-oriented programming.
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs, 2010

Aliasing control with view-based typestate.
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs, 2010

2009
Design patterns in separation logic.
Proceedings of TLDI'09: 2009 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation, 2009

Static extraction of sound hierarchical runtime object graphs.
Proceedings of TLDI'09: 2009 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation, 2009

Typestate protocol specification in JML.
Proceedings of the SAVCBS'09, 2009

Concurrency by default: using permissions to express dataflow in stateful programs.
Proceedings of the Companion to the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2009

CZ: multiple inheritance without diamonds.
Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2009

Typestate-oriented programming.
Proceedings of the Companion to the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2009

Static extraction and conformance analysis of hierarchical runtime architectural structure using annotations.
Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2009

Is Structural Subtyping Useful? An Empirical Study.
Proceedings of the Programming Languages and Systems, 2009

Checking Framework Interactions with Relationships.
Proceedings of the ECOOP 2009, 2009

Practical API Protocol Checking with Access Permissions.
Proceedings of the ECOOP 2009, 2009

2008
Differencing and merging of architectural views.
Autom. Softw. Eng., 2008

Using Types to Enforce Architectural Structure.
Proceedings of the Seventh Working IEEE / IFIP Conference on Software Architecture (WICSA 2008), 2008

A field study in static extraction of runtime architectures.
Proceedings of the 8th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, 2008

Verifying correct usage of atomic blocks and typestate.
Proceedings of the 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2008

Tool support for the static extraction of sound hierarchical representations of runtime object graphs.
Proceedings of the Companion to the 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2008

Tool support for statically checking the structural conformance of an object-oriented system to its runtime architecture.
Proceedings of the Companion to the 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2008

Error Reporting Logic.
Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE 2008), 2008

PLURAL: checking protocol compliance under aliasing.
Proceedings of the 30th International Conference on Software Engineering (ICSE 2008), 2008

SASyLF: an educational proof assistant for language theory.
Proceedings of the 2008 international workshop on Functional and declarative programming in education, 2008

Integrating Nominal and Structural Subtyping.
Proceedings of the ECOOP 2008, 2008

2007
A case study in re-engineering to enforce architectural control flow and data sharing.
J. Syst. Softw., 2007

Specification and verification of component-based systems 2007.
Proceedings of the 6th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2007

Combining structural subtyping and external dispatch.
Proceedings of the Companion to the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2007

Checking framework plugins.
Proceedings of the Companion to the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2007

Modular typestate checking of aliased objects.
Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2007

Tool support for the compile-time execution structure of object-oriented programs with ownership annotations.
Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2007), 2007

Assuring Object-Oriented Architecture.
Proceedings of the ECOOP 2007 - Object-Oriented Programming, 21st European Conference, Berlin, Germany, July 30, 2007

2006
Discovering Architectures from Running Systems.
IEEE Trans. Software Eng., 2006

Young guns/object orientation: the next generation.
Proceedings of the Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2006

A static analysis for extracting runtime views from annotated object-oriented code.
Proceedings of the Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2006

Bringing ownership domains to mainstream Java.
Proceedings of the Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2006

Practical Exception Specifications.
Proceedings of the Advanced Topics in Exception Handling Techniques (the book grow out of ECOOP workshops), 2006

2005
Improving system dependability by enforcing architectural intent.
ACM SIGSOFT Softw. Eng. Notes, 2005

Semi-Automated Incremental Synchronization between Conceptual and Implementation Level Architectures.
Proceedings of the Fifth Working IEEE / IFIP Conference on Software Architecture (WICSA 2005), 2005

Lightweight object specification with typestates.
Proceedings of the 10th European Software Engineering Conference held jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2005

Permission-based ownership: encapsulating state in higher-order typed languages.
Proceedings of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation, 2005

Modeling and implementing software architecture with acme and archJava.
Proceedings of the 27th International Conference on Software Engineering (ICSE 2005), 2005

Prototypes with Multiple Dispatch: An Expressive and Dynamic Object Model.
Proceedings of the ECOOP 2005, 2005

Open Modules: Modular Reasoning About Advice.
Proceedings of the ECOOP 2005, 2005

2004
Modeling and implementing software architecture with acme and archJava.
Proceedings of the Companion to the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2004

DiscoTect: A System for Discovering Architectures from Running Systems.
Proceedings of the 26th International Conference on Software Engineering (ICSE 2004), 2004

Ownership Domains: Separating Aliasing Policy from Mechanism.
Proceedings of the ECOOP 2004, 2004

2003
Using types to enforce architectural structure.
PhD thesis, 2003

Comprehensive synchronization elimination for Java.
Sci. Comput. Program., 2003

Language Support for Connector Abstractions.
Proceedings of the ECOOP 2003, 2003

2002
Architecture-centric programming for adaptive systems.
Proceedings of the First Workshop on Self-Healing Systems, 2002

Alias annotations for program understanding.
Proceedings of the 2002 ACM SIGPLAN Conference on Object-Oriented Programming Systems, 2002

ArchJava: connecting software architecture to implementation.
Proceedings of the 24th International Conference on Software Engineering, 2002

Architectural Reasoning in ArchJava.
Proceedings of the ECOOP 2002, 2002

1999
Static Analyses for Eliminating Unnecessary Synchronization from Java Programs.
Proceedings of the Static Analysis, 6th International Symposium, 1999

1998
Providing Easier Access to Remote Objects in Client-Server Systems.
Proceedings of the Thirty-First Annual Hawaii International Conference on System Sciences, 1998


  Loading...