2025
GenC2Rust: Towards Generating Generic Rust Code from C.
Proceedings of the 47th IEEE/ACM International Conference on Software Engineering, 2025
2024
FlowProf: Profiling Multi-threaded Programs using Information-Flow.
Proceedings of the 33rd ACM SIGPLAN International Conference on Compiler Construction, 2024
2022
Stateful Dynamic Partial Order Reduction for Model Checking Event-Driven Applications that Do Not Terminate.
Proceedings of the Verification, Model Checking, and Abstract Interpretation, 2022
Checking robustness to weak persistency models.
Proceedings of the PLDI '22: 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, San Diego, CA, USA, June 13, 2022
Yashme: detecting persistency races.
Proceedings of the ASPLOS '22: 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Lausanne, Switzerland, 28 February 2022, 2022
2021
C11Tester: A Race Detector for C/C++ Atomics Technical Report.
CoRR, 2021
C11Tester: a race detector for C/C++ atomics.
Proceedings of the ASPLOS '21: 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, 2021
Jaaru: efficiently model checking persistent memory programs.
Proceedings of the ASPLOS '21: 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, 2021
2020
Satune: synthesizing efficient SAT encoders.
Proc. ACM Program. Lang., 2020
Securing Smart Home Edge Devices against Compromised Cloud Servers.
CoRR, 2020
Understanding and automatically detecting conflicting interactions between smart home IoT applications.
Proceedings of the ESEC/FSE '20: 28th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2020
Packet-Level Signatures for Smart Home Devices.
Proceedings of the 27th Annual Network and Distributed System Security Symposium, 2020
2019
PingPong: Packet-Level Signatures for Smart Home Device Events.
CoRR, 2019
Gerenuk: thin computation over big native data using speculative program transformation.
Proceedings of the 27th ACM Symposium on Operating Systems Principles, 2019
2018
Towards understanding the costs of avoiding out-of-thin-air results.
Proc. ACM Program. Lang., 2018
Vigilia: Securing Smart Home Edge Computing.
Proceedings of the 2018 IEEE/ACM Symposium on Edge Computing, 2018
Skyway: Connecting Managed Heaps in Distributed Big Data Systems.
Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems, 2018
2017
Checking Concurrent Data Structures Under the C/C++11 Memory Model.
Proceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2017
ZenIDS: introspective intrusion detection for PHP applications.
Proceedings of the 39th International Conference on Software Engineering, 2017
2016
A Practical Approach for Model Checking C/C++11 Code.
ACM Trans. Program. Lang. Syst., 2016
Yak: A High-Performance Big-Data-Friendly Garbage Collector.
Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation, 2016
BlackBox: lightweight security monitoring for COTS binaries.
Proceedings of the 2016 International Symposium on Code Generation and Optimization, 2016
2015
Speculative region-based memory management for big data systems.
Proceedings of the 8th Workshop on Programming Languages and Operating Systems, 2015
Interruptible tasks: treating memory pressure as interrupts for highly scalable data-parallel programs.
Proceedings of the 25th Symposium on Operating Systems Principles, 2015
AutoMO: automatic inference of memory order parameters for C/C++11.
Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, 2015
SATCheck: SAT-directed stateless model checking for SC and TSO.
Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, 2015
Optimizing binary translation of dynamically generated code.
Proceedings of the 13th Annual IEEE/ACM International Symposium on Code Generation and Optimization, 2015
2014
A model counter for constraints over unbounded strings.
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, 2014
Outlawing ghosts: avoiding out-of-thin-air results.
Proceedings of the workshop on Memory Systems Performance and Correctness, 2014
2013
Views: Synthesizing fine-grained concurrency control.
ACM Trans. Softw. Eng. Methodol., 2013
CDSchecker: checking concurrent data structures written with C/C++ atomics.
Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications, 2013
Sinfer: Inferring information flow lattices for checking self-stabilization.
Proceedings of the IEEE 24th International Symposium on Software Reliability Engineering, 2013
2012
DOJ: dynamically parallelizing object-oriented programs.
Proceedings of the 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2012
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, 2012
Memory management for many-core processors with software configurable locality policies.
Proceedings of the International Symposium on Memory Management, 2012
2011
Bristlecone: Language Support for Robust Software Applications.
IEEE Trans. Software Eng., 2011
Integrating Caching and Prefetching Mechanisms in a Distributed Transactional Memory.
IEEE Trans. Parallel Distributed Syst., 2011
Cross-application data provenance and policy enforcement.
ACM Trans. Inf. Syst. Secur., 2011
Integrating file operations into transactional memory.
J. Parallel Distributed Comput., 2011
Using Discrete Event Simulation to Analyze Contention Managers.
Int. J. Parallel Program., 2011
OoOJava: software out-of-order execution.
Proceedings of the 16th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2011
Using Disjoint Reachability for Parallelization.
Proceedings of the Compiler Construction - 20th International Conference, 2011
2010
AFID: an automated approach to collecting software faults.
Autom. Softw. Eng., 2010
Recovery Tasks: An Automated Approach to Failure Recovery.
Proceedings of the Runtime Verification - First International Conference, 2010
Symbolic prefetching in transactional distributed shared memory.
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2010
Bamboo: a data-centric, object-oriented approach to many-core software.
Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation, 2010
Automatically Generating Symbolic Prefetches for Distributed Transactional Memories.
Proceedings of the Middleware 2010 - ACM/IFIP/USENIX 11th International Middleware Conference, Bangalore, India, November 29, 2010
Views: object-inspired concurrency control.
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, 2010
Automatically Tuning Task-Based Programs for Multicore Processors.
Proceedings of the Software Automatic Tuning, From Concepts to State-of-the-Art Results, 2010
2009
Automatic Extraction of Heap Reference Properties in Object-Oriented Programs.
IEEE Trans. Software Eng., 2009
Software transactional distributed shared memory.
Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2009
2008
AFID: an automated fault identification tool.
Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis, 2008
Bristlecone: A Language for Robust Software Systems.
Proceedings of the ECOOP 2008, 2008
2006
Data structure repair using goal-directed reasoning.
PhD thesis, 2006
Goal-Directed Reasoning for Specification-Based Data Structure Repair.
IEEE Trans. Software Eng., 2006
Inference and enforcement of data structure consistency specifications.
Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis, 2006
2005
Data structure repair using goal-directed reasoning.
Proceedings of the 27th International Conference on Software Engineering (ICSE 2005), 2005
2003
Automatic detection and repair of errors in data structures.
Proceedings of the 2003 ACM SIGPLAN Conference on Object-Oriented Programming Systems, 2003
Static Specification Analysis for Termination of Specification-Based Data Structure Repair.
Proceedings of the 14th International Symposium on Software Reliability Engineering (ISSRE 2003), 2003
2002
Role-based exploration of object-oriented programs.
Proceedings of the 24th International Conference on Software Engineering, 2002