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 (but not in Winter 2012; I'm on sabbatical. Sorry. Fall 2012 would be awesome, though.) 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
Please submit program analysis and Soot-related papers to the SOAP workshop!
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
Four Recent Publications
- Jon Eyolfson, Lin Tan and Patrick Lam. MSR 2011: Do Time of Day and Developer Experience Affect Commit Bugginess?. [bib]
- Jeff Zarnett, Mahesh Tripunitara and Patrick Lam. ACM SACMAT 2010: Role-Based Access Control (RBAC) in Java via Proxy Objects using Annotations. [bib]
- Brian Demsky and Patrick Lam. ICSE 2010: Views: Object-Inspired Concurrency Control. [webpage, bib]. Also see the accepted TOSEM version.
- Sebastian Fischmeister and Patrick Lam. IEEE Transactions on Industrial Informatics. Time-Aware Instrumentation of Embedded Software. November 2010.
- Jeff Zarnett (co-supervised with Mahesh Tripunitara)
- Aakarsh Nair
- Hang Chu
Four Recent Publications
- Jon Eyolfson, Lin Tan and Patrick Lam. MSR 2011: Do Time of Day and Developer Experience Affect Commit Bugginess?. [bib]
- Jeff Zarnett, Mahesh Tripunitara and Patrick Lam. ACM SACMAT 2010: Role-Based Access Control (RBAC) in Java via Proxy Objects using Annotations. [bib]
- Brian Demsky and Patrick Lam. ICSE 2010: Views: Object-Inspired Concurrency Control. [webpage, bib]. Also see the accepted TOSEM version.
- Sebastian Fischmeister and Patrick Lam. IEEE Transactions on Industrial Informatics. Time-Aware Instrumentation of Embedded Software. November 2010.
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.).
