13 Jan 2020
Bryan Cantrill (of dtrace fame) writes about engineering performance management.
https://twitter.com/bcantrill/status/1216491216356823040
He suggests the following five questions for engineers to answer twice a year.
- What are you most proud of in the last six months?
- What did you learn?
- Where did you struggle?
- What are you anxious about in the coming six months?
- What are you excited about in the coming six months?
Most proud of
Having recently removed the se-director email from my Thunderbird, I
realized that this role consumed a lot of time and energy. I am most
proud of having completed my term and helping students, both in the
moment (advising and leading the advising team) and through program
changes.
1 Jan 2020
Refereed Publications
- Alex Le Blanc and Patrick Lam. VSTTE 2025: Lessons Learned So Far From a Community Effort to Verify the Rust Standard Library (work-in-progress). [arXiv, bib]
- Vinayak Sharma and Patrick Lam. SCAM 2025: Detecting Exception-Related Behavioural Breaking Changes with UnCheckGuard. [bib, artifact, slides]
- Karoliine Holter, Simmo Saan, Patrick Lam, and Vesal Vojdani. TOPLAS, with presentation at PLDI: Sound Static Data Race Verification for C: Is the Race Lost? [bib, artifact]
- 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]
-
- 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]
-
- 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].
-
- 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]
-
- 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. Invited talk at UCalgary, May 2025. [PDF]
- 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
Other publications
31 Dec 2019
New year, new website! I hope to start breaking out of Associate
Professor Purgatory in 2020 and what I’ve accomplished in 2019 will
lay the groundwork for that.
Professional
I completed my 3 year 4 month term as SE Director. It’s been rewarding
but work/work balance means that I’ve had less time to spend on research.
SE Director
I was thrilled that my students successfully nominated me for
the Friend of EngSoc award. It was a great token of appreciation.
28 Dec 2019
The plan was to leave our stuff at our friends’ place in Toronto, go
to Montreal and the Eastern Townships for the holidays, leave our car
at my parents’ place, and then get back to Waterloo, clean
the house and execute last-minute tasks, and then get back to Toronto,
pick up our 5 checked bags and bring them all to the airport.
Let’s talk about getting from Montreal (well, Brossard) to Waterloo on December 28.
26 Dec 2019
2019 Travel options to/from Waterloo
A lot has changed from the last time I wrote this in 2008.
The options for getting to Toronto and Pearson are much better. I went to BUF a few times a while ago but
now there aren’t good Star Alliance options from BUF and they’re not that much cheaper, so I haven’t done
it for a while.
Here are various options for carless transportation from Waterloo in 2019.
26 Dec 2019
One of my strange hobbies is walking to or from airports. In the ideal
case it is walking between the airport and the place I am sleeping. I
flew into YOW in December 2019 and had the opportunity to take a 13km
walk.
Complete gallery: https://gallery.patricklam.ca/index.php?/category/1209
Itinerary
From YOW, out on Paul Benoit Driveway past the Ottawa Hunt and Golf
Club, to Riverside Dr, meeting the Rideau River at Mooney’s Bay and
“civilization” at Billings Bridge, then across the Rideau on Bank
through the Glebe and Centretown to Albert St and my destination.
11 Nov 2019
Recommendation letter for CS-Can Lifetime Achievement Award
I am writing to strongly endorse the nomination of Prof. Laurie
Hendren for a posthumous Award for Lifetime Achievement in Computer
Science. I’m honoured and also sad to be writing this letter.
I’ll get back to it later, but no mention of Laurie would be complete
without discussing her infectious laugh, which somewhat offsets the sadness.
Laurie has been an inspiration and role model for me from 1998 through
2018 as an undergraduate student, postdoc, faculty member, and
administrator. I hope that in my own career I can continue Laurie’s
outstanding legacy to some extent. I’ll mostly describe my perspective
on her teaching and research, which were parts of her job that she
obviously loved.
8 Apr 2018
An epic trip from Waterloo, ON to Amqui, QC and back via Campbellton, NB, to referee in the judo provincial championships. Trains, bikes, planes, buses. We’ve got it all!
9 Feb 2018
Getting lucky with IRROPS enroute to Bagotville.
3 Nov 2016
Capsule Review
Markets itself as “luxury”. The hard product is comparable to
business class on a plane (which is much easier to provide since a
Yotel doesn’t have to fly), but not comparable to 4* accommodation on
land. Is fit for purpose. Comparable to a Hampton Inn with 10x less
space. Beats a hostel or a, say, America’s Best Value Inn/Super8, by
far.
More Words
A couple of days after arriving in Amsterdam, I realized that the
first of my returning flights departed at 7AM. Working backwards, I’d
need to leave the hotel before 5AM. Yikes! I looked at various hotels
near the airport, but the required shuttle negated many of their
advantages; it doesn’t take long at all to reach Schiphol from
Centraal (but long enough, if aiming for a 7AM flight).