Emina Torlak

Paul G. Allen Center, Box 352350, 185 Stevens Way, Seattle, WA 98195
homes.cs.washington.edu/~emina

Research Interests

Tools and languages for computer-aided design, verification, and synthesis of software.

Education

Massachusetts Institute of Technology, Ph.D., Computer Science
Thesis: A Constraint Solver for Software Engineering
Advisor: Daniel Jackson
2009
Massachusetts Institute of Technology, M.Eng., Computer Science
Thesis: Subtyping in Alloy
Advisor: Daniel Jackson
2004
Massachusetts Institute of Technology, B.Sc., Computer Science 2003

Employment

Amazon Web Services, Seattle, WA
Senior Principal Scientist
2021-present
University of Washington, Seattle, WA
Associate Professor, Paul G. Allen School of Computer Science & Engineering
2018-present
University of Washington, Seattle, WA
Assistant Professor, Paul G. Allen School of Computer Science & Engineering
2014-2018
University of California Berkeley, Berkeley, CA
Researcher, Electrical Engineering and Computer Sciences
2012-2014
LogicBlox, Inc., Atlanta, GA
Senior Computer Scientist, Compiler Technologies Group
2011
IBM Research, Hawthorne, NY
Research Staff Member, Programming Technologies Department
2008-2010

Awards

Robin Milner Young Researcher Award 2021
Amazon Research Award 2020
Distinguished Paper Award for [3] 2020
Best Paper and Distinguished Artifact Awards for [6] 2019
Distinguished Paper Award for [10] 2018
Distinguished Artifact Award for [8] 2018
NSF CAREER Award 2017
Sloan Research Fellow 2016
Best Paper Award for [19] 2016
The AITO Dahl-Nygaard Junior Prize 2016
Distinguished Paper Award for [35] 2012

Publications

Conference Papers

Journal Papers

Workshop Papers

Technical Reports

Theses

Patents

Grants

FMitF: A Framework for Synthesis of Efficient, Reliable, and Secure Operating System Components
Co-PI, NSF CCF-1836724, $980,043
2018-2022
CAREER: The Next 700 Solver-Aided Languages
PI, NSF CCF-1651225, $498,577
2017-2022
ARION: Taming Heterogeneity with DSLs, Approximation, and Synthesis
Co-PI, NSF CCF-1723352, $850,000
2017-2020
A Picture is Worth a Billion Bits: Adaptive Visualization of Big Data
Co-PI, DARPA, $7,500,000
2015-2018
General-Purpose Approximate Computing Across the System Stack
Co-PI, NSF CCF-1518703, $2,400,000
2015-2020
Automated Probabilistic Programming Representation and Inference Languages
Co-PI, DARPA, $1,369,735
2013-2017
XPS: FP: Program Synthesis for Low-Power Spatial Architectures
Co-PI, NSF CCF-1337415, $749,877
2013-2016
DSL Technology for Exascale Computing (D-TEC)
Key Personnel, DOE DE-SC0008923, $11,605,314
2012-2015
Computed Aided Development for Mobile Applications
Co-PI, Samsung Electronics, $126,086
2012-2013
Software Synthesis for High Productivity Exascale Computing
Co-PI, DOE DE-SC0005136, $683,344
2012-2013

Presentations and Seminars

Solver-Aided Programming for All
Programming Language Design and Implementation (PLDI), Invited Talk Jun 2021
Northwestern University, Invited Talk Apr 2021
Amazon, Invited Talk Apr 2021
UMass Amherst, Invited Talk Feb 2021
University of Iowa, Invited Talk Oct 2020
Facebook PLEMM, Invited Talk Sep 2019
International Conference on Functional Programming (ICFP), Keynote Aug 2019
EPFL, Invited Talk Aug 2019
International Symposium on Software Testing and Analysis (ISSTA), Keynote Jul 2018
Solver-aided verification for systems software
Newton Institute Workshop on Verified Software, Invited talk Jun 2021
A Unified Framework for Reasoning about Critical Infrastructure Software
Algorand, Invited Talk, joint with Xi Wang Mar 2021
Intel, Invited Talk, joint with Xi Wang Oct 2020
Solver-Aided Programming
Computer-Aided Verification (CAV), Invited Tutorial Jul 2019
Summer School on Formal Techniques (SSFT), Invited Tutorial May 2018
Finding Code That Explodes Under Symbolic Evaluation
IFIP Working Group 2.3, Invited Talk May 2018
Synthesis and Verification for All
Clojure/West, Keynote Mar 2017
DARPA ISAT Augmented Developers Workshop, Invited Talk Feb 2017
RacketCon, Keynote Sep 2016
European Conference on Object-Oriented Programming (ECOOP), Junior DN Prize Lecture Jul 2016
Optimizing Synthesis with Metasketches
IFIP Working Group 2.4, Invited Talk Apr 2016
IFIP Working Group 2.3, Invited Talk Jan 2016
Synthesis and Verification for Everyone
Cornell University, Invited Seminar Sep 2015
European Conference on Object-Oriented Programming (ECOOP), Invited Talk Jul 2015
Formal, Machine-Checkable Dependability Cases for End-to-End Safety Properties
IFIP Working Group 2.4, Invited Talk Jul 2015
Summit on Advances in Programming Languages (SNAPL), Conference Talk May 2015
IFIP Working Group 2.3, Invited Talk Mar 2015
Programming for Everyone: Languages That Automate Coding, Verification, and Debugging
TTI/Vanguard, Invited Talk Sep 2014
Programming for Everyone: From Solvers to Solver-Aided Languages and Beyond
Stanford University, Stanford Software Seminar Jul 2014
Summer School on Formal Techniques (SSFT), Invited Talk May 2014
University of Washington, Invited Seminar May 2014
Samsung Electronics, Invited Seminar Apr 2014
University of Texas at Austin, ECE, Invited Seminar Apr 2014
University of Pennsylvania, Invited Seminar Apr 2014
Princeton University, Invited Seminar Mar 2014
University of Southern California, Invited Seminar Mar 2014
Microsoft Research, Redmond, Invited Seminar Mar 2014
University of Wisconsin-Madison, Invited Seminar Mar 2014
Purdue University, Invited Seminar Feb 2014
University of California, Berkeley, Invited Seminar Feb 2014
Northeastern University, Invited Seminar Feb 2014
IBM T. J. Watson Research Center, Invited Seminar Jan 2014
University of California, Los Angeles, Invited Seminar Jan 2014
A Lightweight Symbolic Virtual Machine for Solver-Aided Host Languages
Programming Language Design and Implementation (PLDI), Conference Talk Jun 2014
IFIP Working Group 2.4, Invited Talk Feb 2014
Growing Solver-Aided Languages with Rosette
Kestrel Institute, Invited Seminar Dec 2013
Viewpoints Research Institute, Invited Seminar Dec 2013
New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), Conference Talk Oct 2013
IFIP Working Group 2.3, Invited Talk Jun 2013
Northeastern University, Invited Seminar Apr 2013
Dagstuhl Seminar 13061 (Fault Prediction, Localization, and Repair), Invited Talk Feb 2013
Synthesizing Programs with Constraint Solvers
Expeditions in Computer Augmented Program Engineering (ExCAPE) Summer School, Invited Lecture Series (with Rastislav Bodik) Jun 2013
Computer-Aided Verification (CAV), Invited Tutorial (with Rastislav Bodik) Jul 2012
Programming with Constraint Solvers: Toward a Shared Infrastructure for Code Checking, Angelic Execution, Debugging, and Synthesis
Georgia Institute of Technology, Invited Seminar Nov 2012
SRI International, Invited Seminar Sep 2012
Workshop on Intermediate Verification Languages (Boogie), Invited Talk Jul 2012
Scalable Test Data Generation from Multidimensional Models
Foundations of Software Engineering (FSE), Conference Talk Nov 2012
IFIP Working Group 2.4, Invited Talk May 2012
University of California, Berkeley (ParLab), Invited Seminar Aug 2011
Kodkod by Example: Code Checking, Data Repair, Debugging and Synthesis
Dagstuhl Seminar 12152 (Software Synthesis), Invited Tutorial Apr 2012
MemSAT: Checking Axiomatic Specifications of Memory Models
First International SAT/SMT Summer School, Invited Lecture Jun 2011
Purdue University (Secure Software Systems), Invited Seminar Sep 2011
Programming Language Design and Implementation (PLDI), Conference Talk Jun 2010
University of California, Berkeley (ParLab), Invited Seminar Oct 2009
Effective Interprocedural Resource Leak Detection
International Conference on Software Engineering (ICSE), Conference Talk May 2010
Finding Minimal Unsatisfiable Cores of Declarative Specifications
Formal Methods (FM), Conference Talk May 2008
Kodkod: A Constraint Solver for Relational Logic
International Workshop on Logic and Search (LaSh), Invited Talk Jul 2010
IBM Research (Hawthorne), Invited Seminar Apr 2008
Microsoft Research (Redmond), Invited Seminar Apr 2008
NASA JPL (Lab for Reliable Software), Invited Seminar Nov 2007
Tools and Algorithms for the Construction and Analysis of Systems (TACAS), Conference Talk Mar 2007

Professional Service and Activities

Professional Societies

IFIP Working Group 2.3: Programming Methodology, Member 2016-present
IFIP Working Group 2.4: Software Implementation Technology, Member 2015-2018

Conference and Workshop Organization

Programming Language Design and Implementation (PLDI), Program Chair 2020
The Future of Alloy Workshop, Program Co-Chair 2018
New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), Program Chair 2017
SPLASH Posters, Track Co-Chair 2013
IBM Programming Languages Day, Program Chair 2010

Steering Committees

New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), SC 2018
Programming Language Design and Implementation (PLDI), SC Member at Large 2018

Program Committees, Review Committees, and External Review Committees

Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), RC 2019
Programming Language Design and Implementation (PLDI), PC 2019
Programming Language Design and Implementation (PLDI), PC 2018
Computer-Aided Verification (CAV), PC 2017
Principles of Programming Languages (POPL), PC 2016
Workshop on Synthesis (SYNT), PC 2016
New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), PC 2016
Visions of 2025 and Beyond (V2025) at ICSE 2016, PC 2016
Summit on Advances in Programming Languages (SNAPL), PC 2015
Runtime Verification (RV), PC 2015
Computer-Aided Verification (CAV), PC 2015
International Conference on Software Engineering (ICSE), RC 2015
Principles of Programming Languages (POPL), ERC 2015
Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), ERC 2014
Principles of Programming Languages Off-the-Beaten Track (POPL OBT), PC 2014
Constraints in Software Testing, Verification and Analysis (CSTVA), PC 2014
Domain-Specific Language Design and Implementation (DSLDI), PC 2014
Generative Programming: Concepts & Experiences (GPCE), PC 2014
Workshop on Synthesis (SYNT), PC 2014
Programming Language Design and Implementation (PLDI), ERC 2013
PLDI Student Research Competition, PC 2013
Programming Language Design and Implementation (PLDI), PC 2012
Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), PC 2012
International Workshop on Logic and Search (LaSh), PC 2010

Refereeing and Reviewing

ACM Transactions on Software Engineering and Methodology (TOSEM) 2012
Mathematical Structures in Computer Science (MSCS) 2011
Science of Computer Programming 2010
International Conference on Software Engineering (ICSE) 2010
European Symposium on Programming (ESOP) 2010

Students

Sorawee Porncharoenwase, PhD  
Jacob Van Geffen, PhD  
James Bornholt, PhD 2019
Eric Butler, PhD 2018
Vimala Jampala, MS 2015

Teaching

CSE 507: Computer-Aided Reasoning for Software 2014-2021
CSE 311: Foundations of Computing I 2018-2020
CSE 403: Software Engineering 2015-2016
CSE 599 A2: Advanced Computer-Aided Reasoning for Software 2015
CS294: Program Synthesis for Everyone 2012