I'm looking for students. If you are interested in doing research with me at the University of Waterloo, please contact me and we can see if we have mutual interests. Be sure to provide some evidence that you know something about my research interests in your email!
I am particularly interested in supervising fourth-year ECE499 projects. If you are a current Waterloo ECE or SE third- or fourth-year student, and think you might be interested in my research areas, ECE499 or a co-op work term with me are good ways to find out if you want to do more research.
Research
My research aims to develop tools and techniques to help developers produce more reliable software systems. In particular, I am developing (1) lightweight specification languages, which enable developers to state key properties of their software, and (2) static analysis techniques, which enable compilers to verify that these properties actually hold.
Some of my ongoing and past projects:
- DSFinder: applying straightforward static analysis techniques to see how many data structures Java programs implement in practice. (i.e. How much shape analysis do you need to do if you want to understand Java programs?)
- Views: with Brian Demsky, a novel language extension which enables developers to declaratively specify fine-grained (sub-object-level) locking policies.
- Static analysis of tracematches: verifying that specified sequences of program events never occur in any execution.
- Hob: verifying that all executions preserve certain set-based specifications.
- Tokens: embedding design information into Java source code.
You may also be interested in a more detailed research overview.
Current Students
- Jon Eyolfson
- Xavier Noumbissi
- Gaurav Jain
- Divam Jain (co-supervised with Reid Holmes)
Graduated Students
- Jeff Zarnett (co-supervised with Mahesh Tripunitara)
- Aakarsh Nair
- Hang Chu
Three Recent Publications
- Eric Bodden, Patrick Lam and Laurie Hendren. To appear in TOPLAS: Partially evaluating finite-state runtime monitors ahead of time [bib]. Synthesizes our results from ICSE '10, FSE '08 and ECOOP '07 and adds new formalisms.
- Jon Eyolfson, Lin Tan and Patrick Lam. MSR 2011: Do Time of Day and Developer Experience Affect Commit Bugginess? [bib]. Journal version submitted to Experimental Software Engineering.
- Brian Demsky and Patrick Lam. To appear in TOSEM: Views: Synthesizing Fine-Grained Concurrency Control. [webpage, bib]. Previously appeared at ICSE 2010. [bib]
- Jeff Zarnett (co-supervised with Mahesh Tripunitara)
- Aakarsh Nair
- Hang Chu
Three Recent Publications
- Eric Bodden, Patrick Lam and Laurie Hendren. To appear in TOPLAS: Partially evaluating finite-state runtime monitors ahead of time [bib]. Synthesizes our results from ICSE '10, FSE '08 and ECOOP '07 and adds new formalisms.
- Jon Eyolfson, Lin Tan and Patrick Lam. MSR 2011: Do Time of Day and Developer Experience Affect Commit Bugginess? [bib]. Journal version submitted to Experimental Software Engineering.
- Brian Demsky and Patrick Lam. To appear in TOSEM: Views: Synthesizing Fine-Grained Concurrency Control. [webpage, bib]. Previously appeared at ICSE 2010. [bib]
I also have a full publications list, which includes posters and publications.
Mailing Address and Phone
- Patrick Lam
- Department of Electrical and Computer Engineering
- University of Waterloo
- 200 University Avenue West
- Waterloo, Ontario, Canada N2L 3G1
- Office Phone: (519)888-4567 extension 38017
Friends and Collaborators
- Eric Bodden (SOAP workshop)
- Sebastian Fischmeister
- Alex Ghitza
- Laurie Hendren (HeroECS robotics team)
- Viktor Kuncak
- Karen Zee
- Dave Wentzlaff's Christmas Tree Maps numbers search bed and breakfast search
Random software
I've developed a bunch of software, which can be found in various places on my research pages. However, on this page, I'm mirroring Dust, which was developed by Raja Vallée-Rai for the Quest for Java competition, and is in the public domain. It is not otherwise on the Internet, and I got it from the Wayback Machine.
Not me
Unfortunately, I'm not the only person named Patrick Lam (warning: I've heard that there's malware on that page; this JPG or this other JPG should be safe. Well, sort of.).
