Papers

In Journals, Conferences, and Workshops:

[PLDI 2017]: BigFoot: Static Check Placement for Dynamic Race Detection
Dustin Rhodes, Cormac Flanagan, Stephen N. Freund
PLDI, 2017.
Distinguished Artifact Award (BigFoot Artifact)
(extended technical report.)
[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