Monica Lam
Professor of Computer Science, & by courtesy, of Electrical Engineering
Bio
Lam is the Faculty Director of the Stanford MobiSocial Laboratory, whose goal is to create disruptive mobile and social computing technology that serves consumers' interests and benefits the economy in the long term. Our current focus is to let everyone interact socially with each other, without having to join the same proprietary social network. The success of the project lies in making it FUN for the users and EASY for software developers. Released software prototypes and further information can be found on http://mobisocial.stanford.edu.
Honors & Awards
-
Programming Language Design and Implementation Best Paper Award, ACM (2013)
-
Young Investigator Award, National Science Foundation (2008)
Professional Education
-
PhD, Carnegie Mellon (1987)
2015-16 Courses
- Program Analysis and Optimizations
CS 243 (Win) - Research Project in Software Systems and Security
CS 294S (Spr) - Writing Intensive Research Project in Computer Science
CS 294W (Spr) -
Independent Studies (23)
- Advanced Reading and Research
CS 499 (Aut, Win, Spr, Sum) - Advanced Reading and Research
CS 499P (Aut, Win, Spr, Sum) - Computer Laboratory
CS 393 (Aut, Win, Spr, Sum) - Curricular Practical Training
CS 390A (Aut, Win, Spr, Sum) - Curricular Practical Training
CS 390B (Aut, Win, Spr, Sum) - Curricular Practical Training
CS 390C (Aut, Win, Spr, Sum) - Independent Database Project
CS 395 (Aut, Win, Spr, Sum) - Independent Project
CS 399 (Aut, Win, Spr, Sum) - Independent Project
CS 399P (Aut, Win, Spr, Sum) - Independent Work
CS 199 (Aut, Win, Spr, Sum) - Independent Work
CS 199P (Aut, Win, Spr, Sum) - Master's Thesis and Thesis Research
EE 300 (Win, Spr, Sum) - Part-Time CPT
CS 390S (Aut) - Part-Time CPT
CS 390T (Win) - Part-Time Curricular Practical Training
CS 390Q (Spr) - Part-time Curricular Practical Training
CS 390P (Win, Spr) - Programming Service Project
CS 192 (Aut, Win, Spr, Sum) - Senior Project
CS 191 (Aut, Win, Spr, Sum) - Special Studies and Reports in Electrical Engineering
EE 191 (Win, Spr) - Special Studies and Reports in Electrical Engineering
EE 391 (Aut, Win, Spr) - Special Studies or Projects in Electrical Engineering
EE 190 (Win, Spr) - Special Studies or Projects in Electrical Engineering
EE 390 (Aut, Win, Spr) - Writing Intensive Senior Project (WIM)
CS 191W (Aut, Win, Spr)
- Advanced Reading and Research
-
Prior Year Courses
2014-15 Courses
- Program Analysis and Optimizations
CS 243 (Win) - Research Project in Software Systems and Security
CS 294S (Spr) - Writing Intensive Research Project in Computer Science
CS 294W (Spr)
- Program Analysis and Optimizations
All Publications
- SociaLite: Datalog Extensions for Efficient Social Network Analysis 2013
- Processing Email Archives in Special Collections 2012
- Effective Browsing and Serendipitous Discovery with an Experience-Infused Browser 2012
- Musubi: Disintermediated Interactive Social Feeds for Mobile Devices 2012
- Friends, Romans, Countrymen: Lend me your URLs, Using Social Chatter to Personalize Web Search. 2012
- An Algorithm and Analysis of Social Topologies from Email and Photo Tags 2011
- Sentiment Analysis on Personal Email Archives 2011
- Micro-Interactions with NFC-Enabled Mobile Phones 2011
- Groups Without Tears: Mining Social Topologies from Email. 2011
- Email Clients as Decentralized Social Apps in Mr. Privacy 2011
- MUSE: Reviving Memories Using Email Archives 2011
- Secure, Consumer-Friendly Web Authentication and Payments with a Phone. 2010
- PrPl: a Decentralized Social Networking Infrastructure. 2010
- InvisiType: Object-Oriented Security Policies. 2010
- Life-Browsing with a Lifetime of Email. 2010
- All Friends are Not Equal: Using Weights in Social Graphs to Improve Search 2010
- Towards Software-Friendly Networks 2010
- PhoneNet: a Phone-to-Phone Network for Group Communication in a LAN. 2010
-
Automatic Dimension Inference and Checking for Object-Oriented Programs
2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS
2009: 155-165
View details for Web of Science ID 000271438200015
-
Automatic inference of stationary fields: a generalization of java's final fields
ACM SIGPLAN NOTICES
2008; 43 (1): 183-195
View details for Web of Science ID 000256500600019
- Automatic Generation of XSS and SQL Injection Attacks with Goal-Directed Model Checking. 2008
- Securing Web Applications Using Static and Dynamic Information Flow Tracking 2008
-
Securing Web Applications with Static and Dynamic Information Flow Tracking
PEPM'08: PROCEEDINGS OF THE 2008 ACM SIGPLAN SYMPOSIUM ON PARTIAL EVALUATION AND SEMANTICS-BASED PROGRAM MANIPULATION
2008: 3-12
View details for Web of Science ID 000267583600001
- Compilers: Principles, Techniques and Tools. 2006
- Static Detection of Leaks in Polymorphic Containers. 2006
-
Interprocedural parallelization analysis in SUIF
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
2005; 27 (4): 662-731
View details for Web of Science ID 000231271100003
-
Using datalog with binary decision diagrams for program analysis
PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS
2005; 3780: 97-118
View details for Web of Science ID 000233897200007
- Context-Sensitive Program Analysis as Database Queries. 2005
- Improving Software Security with A C Pointer Alias Analysis. 2005
- Finding Security Vulnerabilities in Java Applications Using Static Analysis. 2005
- Finding Application Errors using PQL: a Program Query Language. 2005
-
Improving software security with a C pointer analysis
ICSE 05: 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS
2005: 332-341
View details for Web of Science ID 000235638200047
-
Finding security vulnerabilities in Java applications with static analysis
USENIX ASSOCIATION PROCEEDINGS OF THE 14TH USENIX SECURITY SYMPOSIUM
2005: 271-286
View details for Web of Science ID 000231792900018
-
Reflection analysis for Java
PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS
2005; 3780: 139-160
View details for Web of Science ID 000233897200010
-
The collective: A cache-based system management architecture
USENIX ASSOCIATION PROCEEDINGS OF THE 2ND SYMPOSIUM ON NETWORKED SYSTEMS DESIGN & IMPLEMENTATION (NSDI '05)
2005: 259-272
View details for Web of Science ID 000230945500019
-
Cloning-based context-sensitive pointer alias analysis using binary decision diagrams
ASSOC COMPUTING MACHINERY. 2004: 131-144
View details for Web of Science ID 000223120900012
-
A data locality optimizing algorithm
ACM SIGPLAN NOTICES
2004; 39 (4): 442-444
View details for Web of Science ID 000221895400070
-
Software pipelining: An effective scheduling technique for VLIW machines
ACM SIGPLAN NOTICES
2004; 39 (4): 244-245
View details for Web of Science ID 000221895400042
- A Retrospective: Software Pipelining: An Effective Scheduling Technique for VLIW Machines. In 20 Years of PLDI (1979-1999): A Selection. 2004: 1
- A Practical Dynamic Buffer Overflow Detector. 2004
- A Retrospective: A Data Locality Optimizing Algorithm In 20 Years of PLDI (1979-1999): A Selection. 2004: 1
-
A practical flow-sensitive and context-sensitive C and C++ memory leak detector
ASSOC COMPUTING MACHINERY. 2003: 168-181
View details for Web of Science ID 000183824300015
-
A SMART scheduler for multimedia applications
ACM TRANSACTIONS ON COMPUTER SYSTEMS
2003; 21 (2): 117-163
View details for Web of Science ID 000182125600001
-
Virtual appliances for deploying and maintaining software
USENIX ASSOCIATION PROCEEDINGS OF THE SEVENTEENTH LARGE INSTALLATION SYSTEMS ADMINISTRATION CONFERENCE
2003: 181-194
View details for Web of Science ID 000221658300018
- Virtual Appliances in the Collective: A Road to Hassle-free Computing 2003
- Tracking Pointers with Path and Context Sensitivity for Bug Detection in C Programs 2003
-
Enhancing software reliability with speculative threads
ACM SIGPLAN NOTICES
2002; 37 (10): 184-196
View details for Web of Science ID 000179871700015
-
An efficient inclusion-based points-to analysis for strictly-typed languages
STATIC ANALYSIS, PROCEEDINGS
2002; 2477: 180-195
View details for Web of Science ID 000187294400015
- Tracking Down Software Bugs Using Automatic Anomaly Detection 2002
- Automatic Extraction of Object-Oriented Component Interfaces 2002
- Enhancing Software Reliability using Speculative Threads 2002
-
Optimizing the migration of virtual computers
USENIX ASSOCIATION PROCEEDINGS OF THE FIFTH SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION
2002: 377-390
View details for Web of Science ID 000180402100026
-
Blocking and array contraction across arbitrarily nested loops using affine partitioning
ASSOC COMPUTING MACHINERY. 2001: 103-112
View details for Web of Science ID 000170206900014
- Cache Optimizations With Affine Partitioning 2001
-
Program analysis with partial transfer functions
ACM SIGPLAN NOTICES
1999; 34 (11): 94-103
View details for Web of Science ID 000084855700014
-
SUIF explorer: An interactive and interprocedural parallelizer
ACM SIGPLAN NOTICES
1999; 34 (8): 37-48
View details for Web of Science ID 000082827400005
- A Compiler for Creating Evolutionary Software and Application Experience Technical Report CSL-TR-99-782, Stanford University 1999
- An Affine Partitioning Algorithm to Maximize Parallelism and Minimize Communication 1999
- In Search of Speculative Thread-Level Parallelism 1999
- The Interactive Performance of SLIM: a Stateless, Thin-Client Architecture 1999
-
Maximizing parallelism and minimizing synchronization with affine partitions
ELSEVIER SCIENCE BV. 1998: 445-475
View details for Web of Science ID 000074515700007
-
The design, implementation, and evaluation of Jade
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
1998; 20 (3): 483-545
View details for Web of Science ID 000075619700001
- The Design, Implementation and Evaluation of Jade ACM Transactions on Programming Languages and Systems 1998; 3 (20): 483-545
- The Domain Parallel Computation Model on Warp. 1998
- Multimedia on Multiprocessors: Where's the OS When You Really Need it 1998
-
SMART UNIX SVR4 support for multimedia applications
IEEE COMPUTER SOC. 1997: 404-414
View details for Web of Science ID A1997BJ05W00049
- SMART UNIX SV4 Support for Multimedia Applications 1997
- Maximizing Parallelism and Minimizing Synchronization with Affine Transforms 1997
- The Design, Implementation and Evaluation of SMART: a Scheduler for Multimedia Applications 1997
- Software and Hardware for Exploiting Speculative Parallelism with a Multiprocessor Technical Report CSL-TR-97-715, Stanford University 1997
- The Design, Implementation and Evaluation of SMART: a Scheduler for Multimedia Applications Technical Report CSL-TR-97-721, Stanford University 1997
-
Maximizing multiprocessor performance with the SUIF compiler
COMPUTER
1996; 29 (12): 84-?
View details for Web of Science ID A1996VX48300018
-
Compiler-directed page coloring for multiprocessors
ASSOC COMPUTING MACHINERY. 1996: 244-255
View details for Web of Science ID A1996VM12800024
-
Multiprocessors from a software perspective
IEEE MICRO
1996; 16 (3): 52-61
View details for Web of Science ID A1996UM68000012
-
Transparent fault tolerance for parallel applications on networks of workstations
USENIX ASSOC. 1996: 329-341
View details for Web of Science ID A1996BF11Y00027
- Context-Sensitive Interprocedural Analysis in the Presence of Dynamic Aliasing 1996
- Current Status of the SUIF Research Project The Data Parallel Programming Model: Foundations, HPF Realization, and Scientific Applications edited by Perrin, G., R., Darte, A. Springer. 1996: 65-75
-
DATA AND COMPUTATION TRANSFORMATIONS FOR MULTIPROCESSORS
ASSOC COMPUTING MACHINERY. 1995: 166-178
View details for Web of Science ID A1995RP18800018
-
EFFICIENT CONTEXT-SENSITIVE POINTER ANALYSIS FOR C PROGRAMS
ASSOC COMPUTING MACHINERY. 1995: 1-12
View details for Web of Science ID A1995RF78400002
-
EFFECTIVENESS OF DATA DEPENDENCE ANALYSIS
INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING
1995; 23 (1): 63-81
View details for Web of Science ID A1995QJ76700004
-
A general method for compiling event driven simulations
ASSOC COMPUTING MACHINERY. 1995: 151-156
View details for Web of Science ID A1995BD41Y00026
- Hot Compilers for Future Hot Chips In Hot Chips VII 1995
- Integrated Processor Scheduling for Multimedia 1995
- A Method and Apparatus for Measuring Media Synchronization 1995
- A General Method for Compiling Event-Driven Simulations 1995
- A Fully Interprocedural System for Automatic Parallelization 1995
- Unified Compilation Techniques for Shared and Distributed Address Space Machines 1995
- Detecting Coarse-Grain Parallelism Using an Interprocedural Parallelizing Compiler 1995
-
FALSE SHARING AND SPATIAL LOCALITY IN MULTIPROCESSOR CACHES
IEEE TRANSACTIONS ON COMPUTERS
1994; 43 (6): 651-663
View details for Web of Science ID A1994NR95300002
-
THE DESIGN AND EVALUATION OF A SHARED OBJECT SYSTEM FOR DISTRIBUTED MEMORY MACHINES
USENIX ASSOC. 1994: 101-114
View details for Web of Science ID A1994BC18M00009
- An Overview of a Compiler for Scalable Parallel Machines 1994
- Communication-Free Parallelization via Affine Transformations 1994
- Locality Optimizations for Parallel Machines 1994
- An Efficient Shared Memory System for Distributed Memory Machines Technical Report CSL-TR-94-627, Stanford University 1994
- SUIF: A Parallelizing and Optimizing Research Compiler Technical Report CSL-TR-94-620, Stanford University, May 1994. ACM SIGPLAN Notices 1994: 31-37
-
COMMUNICATION OPTIMIZATION AND CODE GENERATION FOR DISTRIBUTED-MEMORY MACHINES
ASSOC COMPUTING MACHINERY. 1993: 126-138
View details for Web of Science ID A1993LF54700013
-
GLOBAL OPTIMIZATIONS FOR PARALLELISM AND LOCALITY ON SCALABLE PARALLEL MACHINES
ASSOC COMPUTING MACHINERY. 1993: 112-125
View details for Web of Science ID A1993LF54700012
-
JADE - A HIGH-LEVEL, MACHINE-INDEPENDENT LANGUAGE FOR PARALLEL PROGRAMMING
COMPUTER
1993; 26 (6): 28-38
View details for Web of Science ID A1993LF85000004
- Jade: A High-Level, Machine-Independent Language for Parallel Programming IEEE Computer 1993; 6 (26): 28 - 38
- Communication Optimization and Code Generation for Distributed Memory Machines 1993
- Data Dependence and Data-Flow Analysis of Arrays 1993
- Array Data Flow Analysis and its Use in Array Privatization 1993
-
EFFICIENT SUPERSCALAR PERFORMANCE THROUGH BOOSTING
SIGPLAN NOTICES
1992; 27 (9): 248-259
View details for Web of Science ID A1992JT83700021
-
DESIGN AND EVALUATION OF A COMPILER ALGORITHM FOR PREFETCHING
SIGPLAN NOTICES
1992; 27 (9): 62-73
View details for Web of Science ID A1992JT83700006
-
THE STANFORD DASH MULTIPROCESSOR
COMPUTER
1992; 25 (3): 63-79
View details for Web of Science ID A1992HH04100006
-
INTEGRATING SCALAR OPTIMIZATION AND PARALLELIZATION
LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING
1992; 589: 137-151
View details for Web of Science ID A1992BX63Q00010
- Integrating Scalar Optimizations and Parallelization. 1992
- Semantic Foundations of Jade 1992
- Limits of Control Flow on Parallelism 1992
- Heterogeneous Parallel Programming in Jade 1992
-
HIERARCHICAL CONCURRENCY IN JADE
LECTURE NOTES IN COMPUTER SCIENCE
1992; 589: 50-64
View details for Web of Science ID A1992KQ19600005
-
A LOOP TRANSFORMATION THEORY AND AN ALGORITHM TO MAXIMIZE PARALLELISM
IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS
1991; 2 (4): 452-471
View details for Web of Science ID A1991GK69800007
-
COARSE-GRAIN PARALLEL PROGRAMMING IN JADE
ASSOC COMPUTING MACHINERY. 1991: 94-105
View details for Web of Science ID A1991FP75700011
-
EFFICIENT AND EXACT DATA DEPENDENCE ANALYSIS
ASSOC COMPUTING MACHINERY. 1991: 1-14
View details for Web of Science ID A1991FP75600002
-
THE CACHE PERFORMANCE AND OPTIMIZATIONS OF BLOCKED ALGORITHMS
ASSOC COMPUTING MACHINERY. 1991: 63-74
View details for Web of Science ID A1991FN30700008
- A Loop Transformation Theory and Algorithm to Maximize Parallelism IEEE Transactions on Parallel and Distributed Systems 1991; 4 (2): 452-471
- Automatic Blocking by a Compiler. 1991
- An Algorithmic Approach to Compound Loop Transformations. Advances in Languages and Compilers for Parallel Processing. edited by Nicolau et al., A. MIT Press. 1991: 243-259
- A Data Locality Optimizing Algorithm. 1991
- Simple Data Placement Optimizations to Reduce Multiprocessor Cache Miss Rates. 1990
- Compiler Optimizations for Superscalar Computers 1990
- Design of Scalable Shared-Memory Multiprocessors: The DASH Approach. 1990
- Boosting Beyond Static Scheduling in a Superscalar Processor. 1990
- Supporting Systolic and Memory Communication in iWarp. 1990
- Architecture and Compiler Tradeoffs for a Long Instruction Word Microprocessor. 1989
- An Approach to Automatic Generation of Linear Systolic Array Programs. 1989
- Design of the Stanford DASH Multiprocessor. Technical Report CSL-TR-89-403, Stanford University 1989
- A Systolic Array Optimizing Compiler. Kluwer Academic Publishers. 1988
- Compiler Optimizations for Asynchronous Systolic Array Programs. 1988
- iWarp: An Integrated Solution to High-Speed Parallel Computing. 1988
- The Warp Computer: Architecture, Implementation and Performance. IEEE Transactions on Computers 1987; 12 (C-36): 1523-1538
- Architecture of Warp. 1987
- The Warp Programming Environment. 1987
- Programming Warp. 1987
- Warp Architecture: From Prototype to Production. 1987
- Compilation for a High-Performance Systolic Array. 1986
- Warp Architecture and Implementation. 1986
- A Transformational Model of VLSI Systolic Design. IEEE Computer 1985; 2 (18): 45-52
- Warp as a Machine for Low-Level Vision. 1985
- Wafer-Scale Integration and Two-Level Pipelined Implementations of Systolic Arrays. Journal of Parallel and Distributed Computing 1984; 1 (1): 32-63
- Fault-Tolerance and Two-Level Pipelining in VLSI Systolic Arrays. 1984
- A Transformational Model of VLSI Systolic Design. 1983