Refereed Publications
- Alex Le Blanc and Patrick Lam. HATRA 2024: Surveying the Rust Verification Landscape. [arXiv, bib]
- Mohammad Mahdi Abdollahpour, Jens Dietrich, and Patrick Lam. SCAM 2024: Enhancing Security through Modularization: A Counterfactual Analysis of Vulnerability Propagation and Detection Precision. [bib, slides pdf, google slides]
- Karoliine Holter, Juhan-Oskar Hennoste, Patrick Lam, Simmo Saan, Vesal Vojdani. Onward! 2024: Abstract Debuggers: Exploring Program Behaviors Using Static Analysis Results. [bib, slides]
- Karoliine Holter, Juhan-Oskar Hennoste, Simmo Saan, Patrick Lam, Vesal Vojdani. DEBT 2024: Abstract Debugging with GobPie (Demo). [slides, video, bib]
- Mohammad Robati Shirzad and Patrick Lam. Empirical Software Engineering, volume 29, issue 2, article 44. March 2024. A Study of Common Bug Fix Patterns in Rust (preprint). [bib]
- Dakota Wong, Austin Kothig, and Patrick Lam. HATRA 2022: Exploring the Verifiability of Code Generated with GitHub Copilot. [presentation, bib]
- Sruthi Venkatanarayanan, Jens Dietrich, Craig Anslow, and Patrick Lam. VISSOFT 2022 NIER: VizAPI: Visualizing Interactions between Java Libraries and Clients. [bib, dataset, demo]
- David Carter, Garrett Hutson, Patrick Lam, Nate Furman, and Jeff Rose. 2020. Journal of Outdoor Recreation and Tourism: The Self-Governance Challenges Facing Climbers, with Examples from Utah, Colorado, and Ontario (preprint). [bib, publisher site]
- Qian Liang and Patrick Lam. ICSME NIER 2020: SiblingClassTestDetector: Finding Untested Sibling Functions. [bib, video]
- Patrick Lam, Jens Dietrich, and David J. Pearce. Onward! Essays 2020: Putting the Semantics into Semantic Versioning. [bib, video, arXiv]
- Jon Eyolfson and Patrick Lam. ICSE 2019: How C++ Developers Use Immutability Declarations: an Empirical Study. [bib, artifact]
- Andrei Marian Dan, Patrick Lam, Torsten Hoefler, and Martin Vechev. OOPSLA 2016: Modeling and Analysis of Remote Memory Access Programming. [bib, artifact]
- Jon Eyolfson and Patrick Lam. ECOOP 2016: C++ const and Immutability: An Empirical Study of Writes-Through-const. [bib, artifact]
- Brian Demsky and Patrick Lam. OOPSLA 2015: SATCheck: SAT-Directed Stateless Model Checking for SC and TSO. [bib]
- Zheng (Felix) Fang and Patrick Lam. PPPJ 2015: Identifying Test Refactoring Candidates with Assertion Fingerprints. [bib]
- Quinn Hanam, Lin Tan, Reid Holmes and Patrick Lam. MSR 2014: Finding Patterns in Static Analysis Alerts: Improving Actionable Alert Ranking. [bib]
- Jon Eyolfson, Lin Tan and Patrick Lam. Empirical Software Engineering, volume 19, number 4, August 2014. Correlations between Bugginess and Time-Based Commit Characteristics. [bib]
- Supercedes: Jon Eyolfson, Lin Tan and Patrick Lam. MSR 2011: Do Time of Day and Developer Experience Affect Commit Bugginess?. [bib]
- Brian Demsky and Patrick Lam. ACM Transactions on Software Engineering and Methodology, vol. 22 no. 1, February 2013. Views: Synthesizing Fine-Grained Concurrency Control. [bib]
- Supercedes: Brian Demsky and Patrick Lam. ICSE 2010: Views: Object-Inspired Concurrency Control. [bib, source]
- Jon Eyolfson and Patrick Lam. RV 2012: Detecting Unread Memory using Dynamic Binary Translation. [bib]
- Eric Bodden, Patrick Lam and Laurie Hendren. ACM Transactions on Programming Languages and Systems, vol. 23 no. 2, June 2012. Partially evaluating finite-state runtime monitors ahead of time. [bib].
- Hang Chu and Patrick Lam. SOAP 2012: Collection Disjointness Analysis. [bib].
- Patrick Lam, Eric Bodden, Ondrej Lhotak, and Laurie Hendren. CETUS 2011: The Soot framework for Java program analysis: a retrospective. [bib, slides]
- Sebastian Fischmeister and Patrick Lam. IEEE Transactions on Industrial Informatics, vol. 6 no. 4, November 2010. Time-Aware Instrumentation of Embedded Software [bib].
- Supercedes: Sebastian Fischmeister and Patrick Lam. RTAS 2009: On Time-Aware Instrumentation of Programs [bib].
- Eric Bodden, Patrick Lam and Laurie Hendren. RV 2010: Clara: a Framework for Partially Evaluating Finite-state Runtime Monitors Ahead of Time. [bib]
- Jeff Zarnett, Mahesh Tripunitara, and Patrick Lam. SACMAT 2010: Role-Based Access Control (RBAC) in Java via Proxy Objects using Annotations [bib].
- Jeff Zarnett, Patrick Lam and Mahesh Tripunitara. ICISS 2009: Method-Specific Java Access Control via RMI Proxy Objects using Annotations (Short Paper) [bib].
- Eric Bodden, Patrick Lam and Laurie Hendren. FSE 2008: Finding Programming Errors Earlier by Evaluating Runtime Monitors Ahead-of-Time [pdf, bib].
- Eric Bodden, Patrick Lam and Laurie Hendren. BCS 2008: Object Representatives: a uniform abstraction for pointer information [pdf, bib, slides].
- Eric Bodden, Laurie Hendren, Patrick Lam, Ondrej Lhotak, and Nomair A. Naeem. Journal of Logic and Computation 2010: Collaborative runtime verification with tracematches [bib]
- Supercedes: Eric Bodden, Laurie Hendren, Patrick Lam, Ondrej Lhotak, Nomair A. Naeem. RV 2007: Collaborative runtime verification with tracematches [pdf, bib].
- Patrick Lam and Martin Rinard. Next Generation Software Workshop at the International Parallel and Distributed Processing Symposium. Static Verification of Design Constraints and Software Correctness Properties in the Hob System.
- Viktor Kuncak, Patrick Lam, Karen Zee and Martin Rinard. Transactions on Software Engineering, December 2006. Modular Pluggable Analyses for Data Structure Consistency [pdf, bib].
- Thomas Wies, Viktor Kuncak, Patrick Lam, Andreas Podelski and Martin Rinard. VMCAI 2006: Field Constraint Analysis [pdf, bib].
- Viktor Kuncak, Patrick Lam, Karen Zee and Martin Rinard. VSTTE 2005: Implications of a Data Structure Consistency Checking System [pdf, bib].
- Patrick Lam, Viktor Kuncak and Martin Rinard. Tool Demo at CC 2005: Hob: A Tool for Verifying Data Structure Consistency [pdf, bib].
- Patrick Lam, Viktor Kuncak and Martin Rinard. AOSD 2005: Cross-cutting Techniques in Program Specification and Analysis [pdf, bib].
- Patrick Lam, Viktor Kuncak and Martin Rinard. VMCAI 2005: Generalized Typestate Checking for Data Structure Consistency [pdf, bib].
- Karen Zee, Patrick Lam, Viktor Kuncak and Martin Rinard. SVV 2004: Combining Theorem Proving with Static Analysis for Data Structure Consistency [pdf, bib].
- Patrick Lam and Martin Rinard. ECOOP 2003: A Type System and Analysis for the Automatic Extraction and Enforcement of Design Information [pdf, bib]. The slides are also available. ([ps] [pdf])
- Viktor Kuncak, Patrick Lam and Martin Rinard. POPL 2002: Role Analysis [bib].
- Viktor Kuncak, Patrick Lam and Martin Rinard. LCPC 2001: A Language for Role Specifications.
- Vijay Sundaresan, Laurie Hendren, Chrislain Razafimahefa, Raja Vallée-Rai, Patrick Lam, Etienne Gagnon and Charles Godin. OOPSLA 2000: Practical Virtual Method Resolution for Java [bib].
- Raja Vallée-Rai, Etienne Gagnon, Laurie Hendren, Patrick Lam, Patrice Pominville, and Vijay Sundaresan. CC 2000: Optimizing Java Bytecode using the Soot Framework: Is it Feasible? [bib] (I gave the presentation for this paper.)
- Raja Vallée-Rai, Phong Co, Etienne Gagnon, Laurie Hendren, Patrick Lam, and Vijay Sundaresan. CASCON 1999: Soot: A Java bytecode optimization framework.
Posters and Presentations
- Patrick Lam. Hot Takes on Machine Learning for Program Analysis (Director's Cut). Invited talk at UBC, May 2023. [video, PDF]
- Patrick Lam. Hot Takes on Machine Learning for Program Analysis. Keynote at PNW-PLSE, May 2023.
- Patrick Lam. Are Ownership Types Reaching the World Yet? Invited talk at 7th International Workshop on Aliasing, Capabilities and Ownership.
- Patrick Lam. Static and Dynamic Analysis of Test Suites. Invited talk at 3rd Annual ETH Zurich Software Reliability Workshop. [video]
- Patrick Lam. Test Suites and Program Analysis. Contributed talk at 2015 Google Test Automation Conference. [video]
- Patrick Lam. Beyond Coverage: What Lurks in Test Suites? Contributed talk at 2014 Google Test Automation Conference. [video]
- Patrick Lam, Viktor Kuncak and Martin Rinard. Hob: A Tool for Verifying Data Structure Consistency. Tool demo at Compiler Construction 2005.
- Patrick Lam. Colloque du Département d'Informatique et recherche opérationnelle: The Hob System for Verifying Data Structure Consistency Properties. [pdf, handout front: svg, png, back: svg, png]
- Patrick Lam. Québec Programming Languages Seminaire, Fall 2004: The Hob System for Verifying Data Structure Consistency Properties [sxi].
- Patrick Lam, Viktor Kuncak and Martin Rinard. IBM Programming Languages Day, 2004: Modular Pluggable Analysis.
- Patrick Lam. CRS Retreat, 2004: Modular Pluggable Analysis (overview). (How to bike to a workshop).
- Patrick Lam and Martin Rinard. ECOOP 2003: A Typestate System for Simultaneous and Changing Data Structure Participation.
- Patrick Lam and Martin Rinard. Eclipse Technology eXchange at ICSE 2003: A Type System and Analysis for the Automatic Extraction and Enforcement of Design Information.
Theses
- Patrick Lam. PhD thesis, MIT, February 2007: The Hob System for Verifying Software Design Properties. [ps, bib]
- Patrick Lam. MSc thesis, McGill University, August 2000: A Generalized Framework for the Flow Analysis of Concurrent Programs. [pdf, bib]
Other publications
- Patrick Lam, Viktor Kuncak and Martin Rinard. Technical Report 933, MIT Computer Science and Artificial Intelligence Laboratory: On Modular Pluggable Analyses Using Set Interfaces [ps, bib].
- Patrick Lam, Viktor Kuncak and Martin Rinard. Generalized Typestate Checking Using Set Interfaces and Pluggable Analyses [ps, bib]. SIGPLAN Notices, Volume 39, Issue 3 (March 2004), pages 46-55.