Vũ Lê

About
PortraitI'm a final year Ph.D. student at UC Davis, advised by Zhendong Su and Sumit Gulwani. I am interested in program synthesis, static and dynamic program analysis, and testing.
My research is about developing novel and practical techniques to help improve the quality of critical software (e.g., compilers and database engines) and make programming accessible for end users.

I am on the job market this year.
  • Email:
  • Phone: (+1) 530 304 8376
  • Address: 2249 Kemper
    One Shields Ave
    Davis CA 95616, USA

Education

University of California, Davis, USA

Ph.D. Candidate (2009 - present)

Advisor: Zhendong Su and Sumit Gulwani
Thesis: Program Generation for End-User Programming and Compiler Validation

University of Technology - Vietnam National University

B.Eng. in Computer Science (2001 - 2006)

Awards

  • PLDI Distinguished Paper Award, PLDI '14, Edinburgh, 2014
  • Student Travel Grant for PLDI '14, Edinburgh, 2014
  • Best Graduate Researcher Award, Computer Science Department, UC Davis, 2014
  • Graduate Group in Computer Science (GGCS) Graduate Program Fellowship, UC Davis, 2014
  • Gold Medal at ACM Student Research Competition, PLDI '13, Seattle, 2013
  • Student Travel Grant for MobiSys '13, Taipei, 2013
  • Graduate Group in Computer Science (GGCS) Graduate Program Fellowship, UC Davis, 2013
  • PhD Fellowship, Vietnam Education Foundation, 2009

Publications

  • Compiler Validation via Equivalence Modulo Inputs. PLDI '14 [PLDI14a, 18%]
    Vu Le, Mehrdad Afshari, and Zhendong Su
    PLDI Distinguished Paper Award
    Our technique has found more than 200 bugs in GCC and LLVM, most of which have already been fixed.
  • FlashExtract: A Framework for Data Extraction by Examples. PLDI '14 [PLDI14b, 18%]
    Vu Le and Sumit Gulwani
    FlashExtract has been shipped as the cmdlet ConvertFrom-String in Windows Management Framework 5.0 Preview.
    Read about it in this PowerShell's blog post. Other blog posts about ConvertFrom-String: link 1, link 2, link 3.
  • SmartSynth: Synthesizing Smartphone Automation Scripts from Natural Language. MobiSys '13 [MobiSys13a, 16%]
    Vu Le, Sumit Gulwani, and Zhendong Su
    SmartSynth has been integrated into TouchDevelop (demo video).
  • Keyword Programming for TouchDevelop. Video Session, MobiSys '13 [MobiSys13b]
    Vu Le, Jonathan de Halleux, Sumit Gulwani, and Zhendong Su
  • Automatic Detection of Floating-Point Exceptions. POPL '13 [POPL13, 18%]
    Earl Barr, Thanh Vo, Vu Le, and Zhendong Su
    Ariadne has found 2,091 floating-point exceptions in the GNU Scientific Library (GSL).

Research Projects

Critical Software Validation

UC Davis

  • Period: January 2013 - Present
  • Collaborators: Merhdad Afshari, Zhendong Su, Chengnian Sun

An umbrella project whose goal is to improve the quality of all aspects of critical software, such as compilers and database engines. We introduce Equivalence Modulo Inputs, a novel methodology to generate valid tests from existing programs to find bugs in compiler optimizers [PLDI14a]. We are also developing techniques to find bugs in other important compiler components: link-time optimizers and warning infrastructures. In total, we have reported 300+ new bugs (majority are miscompilation) in GCC and LLVM, most of which have been confirmed and fixed by developers. We are currently working on finding correctness/performance bugs in database engines.

FlashM

Microsoft Research

  • Period: June 2014 - present
  • Main Collaborator: Sumit Gulwani

A project that combines various program synthesis techniques and tools (e.g., FlashExtract, FlashFill, and NLyze) to enable users to perform more sophisticated tasks that otherwise cannot be done using a single technique alone. For example, we enable editing by examples by using FlashExtract to highlight regions that need to be edited repetitively, and applying transformation tools such as FlashFill to transform these regions.

FlashExtract

Microsoft Research

  • Period: April 2013 - present
  • Collaborator: Sumit Gulwani

A general framework that allows users to extract relevant data from semi-structured documents (text files, web pages, spreadsheets) using examples (demo video) [PLDI14b]. FlashExtract has been shipped as part of the Windows Management Framework 5.0 Preview.

SmartSynth

UC Davis, Microsoft Research

  • Period: January 2011 - September 2013
  • Collaborators: Peli de Halleux, Sumit Gulwani, Zhendong Su

An end-to-end programming system for synthesizing smartphone automation scripts from natural language descriptions [MobiSys13a]. SmartSynth has been integrated into TouchDevelop, a popular programming environments on mobile devices (demo video) [MobiSys13b].

Ariadne

UC Davis

  • Period: June 2010 - July 2012
  • Collaborators: Earl Barr, Zhendong Su, Thanh Vo

A practical symbolic execution system that was specifically designed for detecting floating-point exceptions [POPL13]. Ariadne has found 2,091 floating-point exceptions in the GNU Scientific Library (GSL).

Internships

Consultant

Microsoft Research Redmond

  • Period: October 2014 - present
  • Supervisor: Sumit Gulwani

Working on the FlashM project that combines multiple synthesis paradigms. Improving FlashExtract logics and ranking. Collaborating with other product groups in Microsoft to bring FlashExtract technology to more customers.

Research Intern

Microsoft Research Redmond

  • Period: June 2014 - September 2014
  • Supervisor: Sumit Gulwani

Worked with the PowerShell team to help transfer FlashExtract to PowerShell (shipped as part of the Microsoft Windows Management Framework 5.0 Preview).

Research Intern (twice)

Microsoft Research Redmond

  • Period: April 2013 - September 2013
  • Supervisor: Sumit Gulwani

Designed and developed FlashExtract, a general program synthesis framework that enables data extraction from semi-structured documents using examples (published in PLDI 2014).

Research Intern

Microsoft Research Redmond

  • Period: June 2012 - September 2012
  • Supervisor: Peli de Halleux and Sumit Gulwani

Designed and developed a natural language front-end for TouchDevelop to synthesize TouchDevelop scripts from English keywords (integrated into TouchDevelop).