Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Monica Lam
[go: Go Back, main page]

Monica S. Lam 

Professor
Computer Science Department
Stanford University

Gates Building, Room 307
353 Serra Mall
Stanford University
CA 94305
(Directions)
   Phone: (650) 725-3714
   Fax: (650) 725-6949
   E-mail: lam at cs.stanford.edu
   Administration Assistant:
         Darlene Hadding





Research Interests

Programming and computing systems.
Program analysis, operating systems, security.

Current Research Projects

POMI 2020 (Programmable Open Mobile Internet)
Improving Program Robustness via Static Analysis and Dynamic Instrumentation.

Recent Research Projects

The Collective: an Appliance-Based Computing Architecture.

Biography

Monica Lam is a Professor in the Computer Science Department at Stanford University since 1988. She received a B.Sc. from University of British Columbia in 1980 and a Ph.D. in Computer Science from Carnegie Mellon University in 1987. She has worked in the areas of compiler optimization, software analysis to improve security, simplifying computing with virtualization.

Her contributions compiler optimizations include software pipelining, data locality, parallelization. The SUIF compiler infrastructure developed by her research group has been widely used by compiler researchers all around the world. She helped found Tensilica in 1998, which specializes automatic generation of configurable processor cores and compilers from a high-level description.

Her contributions in program analysis for security include tools for automatically detecting cross-site scripting and SQL injection bugs in Java/JSP web applications, which was based on a novel context-sensitive pointer alias analysis. Other contributions include the bddbddb (BDD-based Deductive DataBase) analysis system, the PQL program query language, the Diduce dynamic root-cause analyzer, the Clouseau C++ memory leak detector, and the Cred buffer overrun detector. She co-authored Compilers, Principles, Techniques, and Tools (2nd Edition), also known as the Dragon book, which was published in 2006.

In the area of simplifying computing, her Collective project developed the concept of a livePC: subscribers of the livePC will automatically run the latest of the published PC virtual images with each reboot. This approach allows computers to be managed scalably and securely. In 2005, the group started a company called moka5 to transfer the technology to industry.

Monica is an ACM Fellow. She received an NSF Young Investigator award in 1992, the ACM Most Influential Programming Language Design and Implementation Paper Award in 2001, an ACM SIGSOFT Distinguished Paper Award in 2002, and the ACM Programming Language Design and Implementation Best Paper Award in 2004. She was the author of two of the papers in "20 Years of PLDI--a Selection (1979-1999)", and one paper in the "25 Years of the International Symposia on Computer Architecture".

She chaired the ACM SIGPLAN Programming Languages Design and Implementation Conference in 2000, served on the Editorial Board of ACM Transactions on Computer Systems and numerous program committees for conferences on languages and compilers (PLDI, POPL), operating systems (SOSP), and computer architecture (ASPLOS, ISCA).


Current Students

Sudheendra Hangal
Michael Martin
Jiwon Seo
Seok-Won Seong
Christopher Unkel

Courses

CS 343, Spring 2008: Programmable Open Mobile Internet
CS 243, Winter 2008: An Advanced Course in Compilers
CS 343, Spring 2007: What Do Great Software Developers Know?

Recent Talks


Ph.D. Graduates

Michael Wolf
Michael Smith, Harvard
Todd Mowry, CMU
Martin Rinard, MIT
Daniel Scales, VMware
Saman Amarasinghe, MIT
Jennifer Anderson, VMware
Robert Wilson, Tensilica
Jason Nieh, Columbia University
Shih-wei Liao, Intel Research
Brian Schmidt, Silicon Image
Patrick Sathyanathan
Amy Lim, Cadence
Brian Murphy, Intel Research
Jeffrey Oplinger, Sun Micro
David Heine, Tensilica
V. Benjamin Livshits, Microsoft Research
Constantine Sapuntzakis, moka5
John Whaley, moka5

Recent Publications

  1. Automatic Generation of XSS and SQL Injection Attacks with Goal-Directed Model Checking.
    Martin, Michael C., Lam, M. S.
    In Proceedings of the 17th USENIX Security Symposium, (San Jose, CA, 30 July-1 August, 2008), pages 31-43.
  2. Automatic Inference of Stationary Fields: a Generalization of Java's Final Fields.
    C. Unkel and M. S. Lam,
    In Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (San Francisco, CA, 10-12 January 2008). ACM, 2008.
  3. Securing Web Applications Using Static and Dynamic Information Flow Tracking,
    M. S. Lam, M.C. Martin, V. B. Livshits, and J. Whaley,
    In ACM Sigplan 2008 Workshop on Partial Evaluation and Program Manipulation, (Keynote address), January 2008.

Selected Publications (in chronological order)

Security and Manageability
  1. Finding Application Errors and Security Flaws Using PQL: a Program Query Language.
    Michael Martin, V. Benjamin Livshits, and Monica S. Lam
    In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA '05), October 2005.
  2. Finding Security Vulnerabilities in Java Applications Using Static Analysis
    V. Benjamin Livshits and Monica S. Lam
    In Proceedings of the 14th USENIX Security Symposium, August 2005.
  3. The Collective: A Cache-Based System Management Architecture
    R. Chandra, N. Zeldovich, C. P. Sapuntzakis and M. S. Lam
    In Proceedings of the Second Symposium on Networked Systems Design and Implementation, May 2005.
  4. The Interactive Performance of SLIM: A Stateless, Thin-Client Architecture
    B. K. Schmidt, M. S. Lam, and J. D. Northcutt
    In Proceedings of the Seventeenth ACM Symposium on Operating Systems Principles, December 1999.
    Published as Operating Systems Review, 34(5):32-47.
Program Analysis
  1. Static Detection of Leaks in Polymorphic Containers.
    David Heine and Monica S. Lam
    In Proceeding of the 28th International Conference on Software Engineering, (Shanghai, China, 20-28 May, 2006), pages 252-261.
  2. Context-Sensitive Program Analysis as Database Queries
    Monica S. Lam, John Whaley, V. Benjamin Livshits, Michael C. Martin, Dzintars Avots, Michael Carbin and Christopher Unkel.
    In Proceedings of the 24th SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems, June, 2005. (Invited Tutorial).
  3. Cloning-Based Context-Sensitive Pointer Alias Analysis Using Binary Decision Diagrams
    John Whaley and Monica S. Lam
    In Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation, June 2004.
    ACM Programming Language Design and Implementation Best Paper Award, 2004.
  4. A Practical Flow-Sensitive and Context-Sensitive C and C++ Memory Leak Detector
    D. L. Heine and M. S. Lam
    In Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, June 2003.
  5. Tracking Down Software Bugs Using Automatic Anomaly Detection
    S. Hangal and M. S. Lam
    In Proceedings of the 24th International Conference on Software Engineering, May 2002.(gzip'ed postscript).
Parallelization and Locality Optimization
  1. Blocking and Array Contraction Across Arbitrarily Nested Loops Using Affine Partitioning
    A. W. Lim, S.-W. Liao and M. S. Lam
    In Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, June 2001.
  2. An Affine Partitioning Algorithm to Maximize Parallelism and Minimize Communication
    A. W. Lim, G. I. Cheong and M. S. Lam
    In Proceedings of the 13th ACM SIGARCH International Conference on Supercomputing, June, 1999, pp. 228-237.
  3. Maximizing Parallelism and Minimizing Synchronization with Affine Partitions
    A. W. Lim and M. S. Lam
    Parallel Computing, Vol. 24, Issue 3-4, May 1998, Pages 445-475. (PDF)
    (A preliminary version appeared as Maximizing Parallelism and Minimizing Synchronization with Affine Transform, in the Conference Record of the 24th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January, 1997.)
  4. Maximizing Multiprocessor Performance with the SUIF Compiler
    M. W. Hall, J. M. Anderson, S. P. Amarasinghe, B. R. Murphy, S.-W. Liao, E. Bugnion and M. S. Lam
    IEEE Computer, December 1996.
    (A special issue on multiprocessors).
  5. Detecting Coarse-Grain Parallelism Using an Interprocedural Parallelizing Compiler (PostScript)
    M. W. Hall, S. P. Amarasinghe, B. R. Murphy, S. Liao, and M. S. Lam,
    In Proceedings of Supercomputing '95, December 1995.
  6. Global Optimizations for Parallelism and Locality on Scalable Parallel Machines (PostScript)
    J. M. Anderson and M. S. Lam
    In Proceedings of the ACM SIGPLAN'93 Conference on Programming Language Design and Implementation, June, 1993.
  7. Design and Evaluation of a Compiler Algorithm for Prefetching ( PDF)
    T. C. Mowry, M. S. Lam and A. Gupta
    In Proceedings of the Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, October, 1992.
  8. A Data Locality Optimizing Algorithm
    M. E. Wolf and M. S. Lam
    In Proceedings of the ACM SIGPLAN'91 Conference on Programming Language Design and Implementation, June 1991.
    ACM Most Influential PLDI Paper Award, 2001.
    Included in 20 Years of PLDI (1979-1999): A Selection, 2004. (A retrospective).
  9. Software Pipelining: An Effective Scheduling Technique for VLIW Machines.
    M. Lam.
    In Proceedings of the SIGPLAN 88 Conference on Programming Language Design and Implementation, June 1988, pp. 318-328.
    Included in 20 Years of PLDI (1979-1999): A Selection, 2004. (A retrospective).

Architecture
  1. Limits of Control Flow on Parallelism (PostScript)
    M. S. Lam and R. P. Wilson
    In Proceedings of the 19th Annual International Symposium on Computer Architecture, May, 1992.
  2. The Cache Performance and Optimizations of Blocked Algorithms
    M. S. Lam, E. E. Rothberg and M. E. Wolf
    In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, April 1991.
  3. The Warp Computer: Architecture, Implementation and Performance.
    M. Annaratone, E. Arnould, T. Gross, H. T. Kung, M. Lam, and O. Menzilcioglu
    IEEE Transactions on Computers, December 1987, C-36, 12, pp. 1523-1538.
    (A preliminary version appeared as Warp Architecture and Implementation, which appeared in the Proceedings of the 13th Annual Symposium on Computer Architecture, (Tokyo, Japan, 2-5 June 1986). pp. 346-356.
    Included in 25 Years of the International Symposia on Computer Architecture, 1998.)