Papers

In Journals, Conferences, and Workshops:

[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 (BigFoot 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