FlashMeta Microsoft PROSE SDK: A Framework for Inductive Program Synthesis Oleksandr Polozov University of Washington Sumit Gulwani Microsoft Research.

Slides:



Advertisements
Similar presentations
Synthesizing Number Transformations from Input-Output Examples Rishabh Singh and Sumit Gulwani.
Advertisements

From Verification to Synthesis Sumit Gulwani Microsoft Research, Redmond August 2013 Marktoberdorf Summer School Lectures: Part 1.
Search for personal information using Yahoo BOSS by Evgeny Dosychev Dmitry Kichin Supervisor: Eddie Bortnikov.
(non-programmers with access to computers)
FlashExtract : A General Framework for Data Extraction by Examples
Learning Semantic String Transformations from Examples Rishabh Singh and Sumit Gulwani.
Data Manipulation using Programming by Examples and Natural Language Invited Upenn April 2015 Sumit Gulwani.
Example applications : Find rogue zones: thermal zones which are constantly heating / cooling. Requires: Finding temp sensors and temp setpoints which.
CS 253: Algorithms Syllabus Chapter 1 Appendix A.
A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato ITT Industries,
Usable Synthesis Sumit Gulwani Microsoft Research, Redmond Usable Verification Workshop November 2010 MSR Redmond.
Spreadsheet Table Transformations from Examples William HarrisSumit Gulwani.
Problem Generation & Feedback Generation Invited ASSESS 2014 Workshop collocated with KDD 2014 Sumit Gulwani Microsoft Research, Redmond.
CS 117 Section 2 + KNET Computer accounts – ed to KNET students –Change password Homework 1 Lab Tutors –In lab for next 2 weeks –Will help you with.
Words & Definitions By: Naftaly Garcia Birruete. Address Bar  The space provided on a web browser that shows the addresses of websites.
Course Overview CS294: Program Synthesis for Everyone Ras Bodik Emina Torlak Division of Computer Science University of California, Berkeley.
Programming by Example using Least General Generalizations Mohammad Raza, Sumit Gulwani & Natasa Milic-Frayling Microsoft Research.
Lecture 1, 7/21/2005Natural Language Processing1 CS60057 Speech &Natural Language Processing Autumn 2005 Lecture 1 21 July 2005.
Xpantrac connection with IDEAL Sloane Neidig, Samantha Johnson, David Cabrera, Erika Hoffman CS /6/2014.
Templates of slides for P3 1. A brief update on your problem (important) Describe in English -what artifacts (programs, etc) will you synthesize, -what.
Wei Cheng 1, Xiaoming Jin 1, and Jian-Tao Sun 2 Intelligent Data Engineering Group, School of Software, Tsinghua University 1 Microsoft Research Asia 2.
Cultivating Research Taste (illustrated via a journey in Program Synthesis research) Programming Languages Mentoring Workshop 2015 Sumit Gulwani Microsoft.
Warren He, Devdatta Akhawe, and Prateek MittalUniversity of California Berkeley This subset of the web application generates new requests to the server.
Visual Sequences IQ Tests 1 Dipendra Kumar Misra (Y9201) Mukul Singh (Y9350) Tags : Search, Pattern Recognition, Logic etc Advisor : Dr. Amitabh Mukherjee.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Programming by Examples Marktoberdorf Lectures August 2015 Sumit Gulwani.
End-User Programming (using Examples & Natural Language) Sumit Gulwani Microsoft Research, Redmond August 2013 Marktoberdorf Summer.
Dimensions in Synthesis Part 3: Ambiguity (Synthesis from Examples & Keywords) Sumit Gulwani Microsoft Research, Redmond May 2012.
COURSE INTRODUCTION CS703 – Program verification and synthesis Loris D’Antoni.
111 Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract,
L9 - April 5, 2006copyright Thomas Pole , all rights reserved 1 Lecture 9: Reuse Driven Processes and Text Ch. 7: Programming with Models.
CS 367: Model-Based Reasoning Lecture 5 (01/29/2002) Gautam Biswas.
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
Semantic Language E-Learning Platform Martin Jovanović, Milena Stanković, Dejan Todosijević CIITLab, Faculty of Electronic Engineering Niš.
Formal Methods in Invited CBSoft Sep 2015 Sumit Gulwani Data Wrangling & Education.
CS703: PROJECT GUIDELINES 1. Logistics: Project Most important part of the course Teams of 1 or 2 people Expectations commensurate with size of team Deliverables.
A Generalized Version Space Learning Algorithm for Noisy and Uncertain Data T.-P. Hong, S.-S. Tseng IEEE Transactions on Knowledge and Data Engineering,
FlashNormalize: Programming by Examples for Text Normalization International Joint Conference on Artificial Intelligence, Buenos Aires 7/29/2015FlashNormalize1.
SmartSynth: Synthesizing Smartphone Automation Scripts from Natural Language Vu Le (UC Davis) Sumit Gulwani (MSR Redmond) Zhendong Su (UC Davis)
Predicting a Correct Program in PBE Rishabh Singh, Microsoft Research Sumit Gulwani, Microsoft Research.
Automating String Processing in Spreadsheets using Input-Output Examples Sumit Gulwani Microsoft Research, Redmond.
Compositional Program Synthesis from Natural Language and Examples Mohammad Raza, Sumit Gulwani & Natasa Milic-Frayling Microsoft.
UniTesK Test Suite Architecture Igor Bourdonov Alexander Kossatchev Victor Kuliamin Alexander Petrenko.
UniTesK Test Suite Architecture Igor Bourdonov Alexander Kossatchev Victor Kuliamin Alexander Petrenko.
Programming by Examples Marktoberdorf Lectures August 2015 Sumit Gulwani.
Dagstuhl Seminar Oct 2015 Sumit Gulwani Applications of Inductive Programming in Data Wrangling.
Programming by Examples applied to Data Wrangling Invited SYNT July 2015 Sumit Gulwani.
Deductive Techniques for synthesis from Inductive Specifications Dagstuhl Seminar Oct 2015 Sumit Gulwani.
Rahul Sharma and Alex Aiken (Stanford University) 1.
Sumit Gulwani Spreadsheet Programming using Examples Keynote at SEMS July 2016.
Sumit Gulwani Programming by Examples Applications, Algorithms & Ambiguity Resolution Keynote at IJCAR June 2016.
Tackling Ambiguity in PBE Rishabh Singh
CACheck: Detecting and Repairing Cell Arrays in Spreadsheets
Outline Core Synthesis Architecture [1 hour by Sumit]
Learning outcomes 2 Developing Code – Input Output Model
Programming by Examples
Introduction to Azure Bot Framework
Usability Design Space in Programming by Examples
Programming by Examples
Advanced Compilation and Automatic Programming
Chapter 15 QUERY EXECUTION.
Definition In simple terms, an algorithm is a series of instructions to solve a problem (complete a task) We focus on Deterministic Algorithms Under the.
Programming by Examples
Programming by Examples
CSc4730/6730 Scientific Visualization
VERIFICATION IN CHUNK-BASED SOFTWARE EVOLUTION
David Cyphert CS 2310 – Software Engineering
Investigating Provably Secure and Practical Software Protection
Jiasi Shen, Martin Rinard MIT EECS & CSAIL
2 Old-Fashioned Problems
Presentation transcript:

FlashMeta Microsoft PROSE SDK: A Framework for Inductive Program Synthesis Oleksandr Polozov University of Washington Sumit Gulwani Microsoft Research

Why do people create frameworks? Industrialization (a.k.a. “Tech Transfer”) 2

3

4

Program Synthesis: “The Ultimate Dream” of CS User Intent Programming Language Search Algorithm Program 5

Industrialization Time? Flash Fill ( ) Trifacta ( )SPIRAL ( ) 6

Microsoft Program Synthesis using Examples SDK microsoft.github.io/prose 7

Shoulders of Giants PROSE Deductive Synthesis Syntax-Guided Synthesis Domain-Specific Inductive Synthesis 8

Shoulders of Giants PROSE Deductive Synthesis Püschel et al. [IEEE '05] Panchekha et al. [PLDI '15] Manna, Waldinger [TOPLAS '80] 9

Shoulders of Giants PROSE Syntax-Guided Synthesis Alur et al. [FMCAD '13] 10

Shoulders of Giants PROSE Domain-Specific Inductive Synthesis Lau et al. [ICML '00] Gulwani [POPL '10] etc. Feser et al. [PLDI '15] 11

Shoulders of Giants Domain-Specific Inductive Synthesis Syntax-Guided Synthesis “Learn from examples”“Search over a DSL” User Intent Programming Language Deductive Synthesis “Divide & Conquer” Search Algorithm 12

Meta-synthesizer framework PROSE Synthesis Strategies DSL Definition I/O Specification Synthesizer Input Output Programs App PROSE 13

Domain-Specific Language 14

string output(string[] inputs) := | ConstantString(s) | let string x = std.list.Kth(inputs, k) in Substring(x, positionPair(x)); Tuple positionPair(string s) := std.Pair(positionIn(s), positionIn(s)); int positionIn(string s) := AbsolutePosition(s, k) | RegexPosition(s, std.Pair(r, r), k); const int k;const RegularExpression r;const string s; FlashFill (portion) as a PROSE DSL 15

16

Inductive Specification 17

Input-Output Examples 18

When one example is too many 19

Inductive Specification 20

Inductive Specification 21

Examples are ambiguous! 22

23

24 (Version Space Algebra)

Synthesis Strategy 25

Observation 1: Inverse Semantics 26

27

Observation 2: Skolemization 28

29

Domain-Specific Modular No synthesis reasoning Enable efficient deduction 30

Results 31

Unifies 10+ prior POPL/PLDI/… papers Lau, T., Domingos, P., & Weld, D. S. (2000). Version Space Algebra and its Application to Programming by Demonstration. In ICML (pp. 527–534). Kitzelmann, E. (2011). A combined analytical and search-based approach for the inductive synthesis of functional programs. KI- Künstliche Intelligenz, 25(2), 179–182. Gulwani, S. (2011). Automating string processing in spreadsheets using input-output examples. In POPL (Vol. 46, p. 317). Singh, R., & Gulwani, S. (2012). Learning semantic string transformations from examples. VLDB, 5(8), 740–751. Andersen, E., Gulwani, S., & Popovic, Z. (2013). A Trace-based Framework for Analyzing and Synthesizing Educational Progressions. In CHI (pp. 773–782). Yessenov, K., Tulsiani, S., Menon, A., Miller, R. C., Gulwani, S., Lampson, B., & Kalai, A. (2013). A colorful approach to text processing by example. In UIST (pp. 495–504). Le, V., & Gulwani, S. (2014). FlashExtract: A Framework for Data Extraction by Examples. In PLDI (p. 55). Barowy, D. W., Gulwani, S., Hart, T., & Zorn, B. (2015). FlashRelate: Extracting Relational Data from Semi-Structured Spreadsheets Using Examples. In PLDI. Kini, D., & Gulwani, S. (2015). FlashNormalize: Programming by Examples for Text Normalization. IJCAI. Osera, P.-M., & Zdancewic, S. (2015). Type-and-Example-Directed Program Synthesis. In PLDI. Feser, J., Chaudhuri, S., & Dillig, I. (2015). Synthesizing Data Structure Transformations from Input-Output Examples. In PLDI. … 32

Program Synthesis meets Software Engineering ProjectReference Lines of CodeDevelopment Time OriginalPROSEOriginalPROSE Flash FillPOPL K3K9 months1 month Text ExtractionPLDI 20147K4K8 months1 month Text NormalizationIJCAI K2K7 months2 months Spreadsheet LayoutPLDI 20155K2K8 months1 month Web Extraction——2.5K—1.5 months 33

Learning time = 1.6 sec 3 examples till task completion 34

35

Applications 36

Parsing in Cortana 37

ConvertFrom-String in PowerShell 38

Research: Play: Contact: See our MSR table: Thank you! Questions? 39