Papers

In Journals, Conferences, and Workshops:

[OOPSLA 2020] The Anchor Verifier for Blocking and Non-blocking Concurrent Software
Cormac Flanagan and Stephen N. Freund
ACM Proceedings of the ACM on Programming Languages – OOPSLA, 2020.
Artifact :: Appendix :: Talk
 
[PPoPP 2018] VerifiedFT: A Verified, High-Performance Precise Dynamic Race Detector
James R. Wilcox, Cormac Flanagan, Stephen N. Freund
ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2018.
Artifact
 
[PLDI 2017] BigFoot: Static Check Placement for Dynamic Race Detection
Dustin Rhodes, Cormac Flanagan, Stephen N. Freund
ACM Conference on Programming Language Design and Implementation, 2017.
Distinguished Artifact Award
Artifact :: extended technical report
 
[FTFJP 2017] Correctness of Partial Escape Analysis for Multithreading Optimization
Dustin Rhodes, Cormac Flanagan, Stephen N. Freund
Workshop on Formal Techniques for Java-like Programs, 2017.
 
[SCP 2015] Cooperative types for controlling thread interference in Java
Jaeheon Yi, Tim Disney, Stephen N. Freund, Cormac Flanagan
Science of Computer Programming, 2015.
 
[ASE 2015] Array Shadow State Compression for Precise Dynamic Race Detection
James Wilcox, Parker Finch, Cormac Flanagan, and Stephen N. Freund
International Conference on Automated Software Engineering, 2015.
(extended technical report.)
 
[ECOOP 2013] RedCard: Redundant Check Elimination For Dynamic Race Detectors
Cormac Flanagan and Stephen N. Freund
European Conference on Object-Oriented Programming, 2013.
Best Paper Award
(Technical report with proofs.)
 
[ISSTA 2012] Types for Precise Thread Interference
Jaeheon Yi, Tim Disney, Stephen N. Freund, Cormac Flanagan
ACM International Symposium on Software Testing and Analysis, 2012.
 
[FOOL 2011] Types for Precise Thread Interference
Jaeheon Yi, Tim Disney, Stephen N. Freund, and Cormac Flanagan
Workshop on Foundations and Developments of Object-Oriented
Languages, 2011.
 
[CACM 2010] FastTrack: Efficient and Precise Dynamic Race Detection
Cormac Flanagan and Stephen N. Freund
Communications of the ACM, 2010.
 
[PLDI 2010] Adversarial Memory for Detecting Destructive Races
Cormac Flanagan and Stephen N. Freund
ACM Conference on Programming Language Design and Implementation, 2010.
 
[PASTE 2010] The RoadRunner Dynamic Analysis Framework for Concurrent Programs
Cormac Flanagan and Stephen N. Freund
ACM Workshop on Program Analysis for Software Tools and Engineering, 2010.
 
[PLDI 2009] FastTrack: Efficient and Precise Dynamic Race Detection
Cormac Flanagan and Stephen N. Freund
ACM Conference on Programming Language Design and Implementation, 2009.
(Selected for publication as CACM Research Highlight)
 
[ESOP 2009] SingleTrack: A Dynamic Determinism Checker for Multithreaded Programs
Caitlin Sadowski, Cormac Flanagan, and Stephen N. Freund
European Symposium on Programming, 2009.
 
[PLDI 2008] Velodrome: A Sound and Complete Dynamic Analysis for Atomicity
Cormac Flanagan, Stephen N. Freund, and Jaeheon Yi
ACM Conference on Programming Language Design and Implementation, 2008.
 
[TOPLAS 2008]    \ Types for Atomicity: Static Checking and Inference for Java (appendix)
Cormac Flanagan, Stephen N. Freund, Marina Lifshin, and Shaz Qadeer
ACM Transactions on Programming Languages and Systems, 2008.
 
[SCP 2008] Atomizer: A Dynamic Atomicity Checker for Multithreaded Programs
Cormac Flanagan and Stephen N. Freund
Science of Computer Programming, 2008.
 
[SCP 2007] Type Inference Against Races
Cormac Flanagan and Stephen N. Freund
Science of Computer Programming, 2007.
 
[TOPLAS 2006] Types for Safe Locking: Static Race Detection for Java
Martin Abadi, Cormac Flanagan, and Stephen N. Freund
ACM Transactions on Programming Languages and Systems, 2006.
 
[RV 2006] Dynamic Architecture Extraction
Cormac Flanagan and Stephen N. Freund
Formal Approaches to Testing and Runtime Verification, 2006.
 
[SFP 2006] Sage: Hybrid Checking for Flexible Specifications
Jessica Gronski, Kenneth Knowles, Aaron Tomb, Stephen N. Freund, and
Cormac Flanagan
Workshop on Scheme and Functional Programming, 2006.
(extended version)
 
[FOOL 2006] Hybrid Types, Invariants, and Refinements for Imperative Objects
Cormac Flanagan, Stephen N. Freund, and Aaron Tomb
Workshop on Foundations and Developments of Object-Oriented Languages, 2006.
 
[TLDI 2005] Type Inference For Atomicity
Cormac Flanagan, Stephen N. Freund, and Marina Lifshin
ACM Workshop on Types in Language Design and Implementation, 2005.
 
[TSE 2005] Exploiting Purity for Atomicity
Cormac Flanagan, Stephen N. Freund, and Shaz Qadeer
IEEE Transactions on Software Engineering, 2005.
 
[TCS 2005] Modular Verification of Multithreaded Programs
Cormac Flanagan, Stephen N. Freund, Shaz Qadeer and Sanjit A. Seshia
Theoretical Computer Science, 2005.
 
[SCOOL 2005] Automatic Synchronization Correction
Cormac Flanagan and Stephen N. Freund
Workshop on Synchronization and Concurrency in Object-Oriented Languages, 2005.
 
[ISSTA 2004] Exploiting Purity for Atomicity
Cormac Flanagan, Stephen N. Freund, and Shaz Qadeer
ACM International Symposium on Software Testing and Analysis, 2004.
Distinguished Paper Award
Also see TSE 2005
 
[POPL 2004] Atomizer: A Dynamic Atomicity Checker for Multithreaded Programs
Cormac Flanagan and Stephen N. Freund
ACM Symposium on Principles of Programming Languages, 2004.
 
[SAS 2004] Type Inference Against Races
Cormac Flanagan and Stephen N. Freund
Static Analysis Symposium, 2004.
 
[JOT 2004] Checking Concise Specifications For Multithreaded Software
Stephen N. Freund and Shaz Qadeer
Journal of Object Technology, 2004.
 
[PADTAD 2004] Atomizer: A Dynamic Atomicity Checker for Multithreaded Programs (Summary)[]{#04-padtad}
Cormac Flanagan and Stephen N. Freund
Workshop on Parallel and Distributed Systems: Testing and Debugging, 2004.
 
[CC 2003] Run-Time Type Checking for Binary Programs
Mike Burrows, Stephen N. Freund, and Janet Wiener
International Conference on Compiler Construction, 2003.
 
[JAR 2003] A Type System for the Java Bytecode Language and Verifier
Stephen N. Freund and John C. Mitchell
Journal of Automated Reasoning, 2003.
 
[FTFJP 2003] Checking Concise Specifications for Multithreaded Software
Stephen N. Freund and Shaz Qadeer
Workshop on Formal Techniques for Java-like Programs, 2003.
An extended version appears below as Williams College Technical Note 01-2002.
 
[ESOP 2002] Thread-Modular Verification for Shared-Memory Programs
Cormac Flanagan, Stephen N. Freund, and Shaz Qadeer
European Symposium on Programming, 2002.
Also see TCS 2005
 
[LL2 2002] Safe Asynchronous Exceptions For Python
Stephen N. Freund and Mark P. Mitchell
Second Lightweight Languages Workshop, 2002.
 
[PASTE 2001] Detecting Race Conditions in Large Programs
Cormac Flanagan and Stephen N. Freund
ACM Workshop on Program Analysis for Software Tools and Engineering, 2001.
Also see TOPLAS 2006
 
[PLDI 2000] Type-Based Race Detection for Java
Cormac Flanagan and Stephen N. Freund
ACM Conference on Programming Language Design and Implementation, 2000.
Also see TOPLAS 2006
 
[LICS 2000] Type-Based Race Detection for Java (summary)
Cormac Flanagan and Stephen N. Freund
LICS short topic presentation, 2000.
 
[TOPLAS 1999] A Type System for Object Initialization in the Java Bytecode Language
Stephen N. Freund and John C. Mitchell
ACM Transactions on Programming Languages and Systems, 1999.
 
[OOPLSA 1999] A Formal Framework for the Java Bytecode Language and Verifier
Stephen N. Freund and John C. Mitchell
ACM Conference on Object-Oriented Programming: Systems, Languages and Applications, 1999.
 
[OOPSLA 1998] A Type System for Object Initialization in the Java Bytecode Language
Stephen N. Freund and John C. Mitchell
ACM Conference on Object-Oriented Programming: Systems, Languages and Applications, 1998.
Also see TOPLAS 2008
 
[FUJ 1998] The Costs and Benefits of Java Bytecode Subroutines
Stephen N. Freund
Formal Underpinnings of Java Workshop at OOPSLA, 1998.
 
[HOOTS 1998] A Type System for Object Initialization in the Java Bytecode Language (summary)
Stephen N. Freund and John C. Mitchell
HOOTS II, 1998. Also presented at Workshop for Security and Languages, 1998.
 
[OOPLSA 1997] Adding Type Parameterization to the Java Language
Ole Agesen, Stephen N. Freund, and John C. Mitchell
ACM Conference on Object-Oriented Programming: Systems, Languages and Applications, 1997.
 
[SIGCSE 1996] Thetis: An ANSI C Programming Environment Designed for Introductory Use
Stephen N. Freund and Eric Roberts
ACM SIGCSE Technical Symposium on Computer Science Education, 1996.

Technical Reports:

 
[2017] BigFoot: Static Check Placement for Dynamic Race Detection
Dustin Rhodes, Cormac Flanagan, Stephen N. Freund
Williams College Technical Report CSTR-201702, 2017.
 
[2017] The FastTrack2 Race Detector
Cormac Flanagan and Stephen N. Freund
Williams College Technical Report CSTR-201701, 2017.
 
[2015] Array Shadow State Compression for Precise Dynamic Race Detection
James Wilcox, Parker Finch, Cormac Flanagan, and Stephen N. Freund
Williams College Technical Report CSTR-201510, 2015.
 
[2013] RedCard: Redundant Check Elimination For Dynamic Race Detectors
Stephen N. Freund and Cormac Flanagan
University of California at Santa Cruz Technical Report UCSC-SOE-13-05, 2013.
 
[2011] Types for Precise Thread Interference
Jaeheon Yi, Tim Disney, Stephen N. Freund, and Cormac Flanagan
University of California at Santa Cruz Technical Report UCSC-SOE-11-22, 2011.
 
[2004]        \ Modular Verification of Multithreaded Programs
Cormac Flanagan, Stephen N. Freund, Shaz Qadeer, and Sanjit A. Seshia
Williams College Technical Note 04-08, 2004.
 
[2004] Type Inference Against Races (extended version)
Cormac Flanagan and Stephen N. Freund
Williams College Technical Note 04-06, 2004.
 
[2004] Exploiting Purity for Atomicity (extended version)
Cormac Flanagan, Stephen N. Freund, and Shaz Qadeer
Williams College Technical Note 04-05, 2004.
 
[2004] Partial Type And Effect Inference for Rcc/Java in NP-Complete
Cormac Flanagan and Stephen N. Freund
Williams College Technical Note 04-01, 2004.
 
[2002] Checking Concise Specifications for Multithreaded Software (extended version)
Stephen N. Freund and Shaz Qadeer
Williams College Technical Note 01-2002, 2002.
 
[2002] Safe Asynchronous Exceptions For Python
Stephen N. Freund and Mark P. Mitchell
Williams College Technical Note 02-2002, 2002. Presented at the Second Lightweight Languages Workshop, 2002.
 
[2001] Thread-Modular Verification for Shared-Memory Programs
Cormac Flanagan, Stephen N. Freund, and Shaz Qadeer
SRC Technical Note 2001-003, 2001.
 
[1999] A Type System for Java Bytecode Subroutines and Exceptions
Stephen N. Freund and John C. Mitchell
Stanford Computer Science Technical Note STAN-CS-TN-99-91, 1999.

Papers on CS Education