Outline Core Synthesis Architecture [1 hour by Sumit]

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.
SpreadsheetML Basics.
Lecture 24 MAS 714 Hartmut Klauck
(non-programmers with access to computers)
FlashExtract : A General Framework for Data Extraction by Examples
Data Manipulation using Programming by Examples and Natural Language Invited Upenn April 2015 Sumit Gulwani.
ISBN Chapter 3 Describing Syntax and Semantics.
Program Verification as Probabilistic Inference Sumit Gulwani Nebojsa Jojic Microsoft Research, Redmond.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
Describing Syntax and Semantics
Programming by Example using Least General Generalizations Mohammad Raza, Sumit Gulwani & Natasa Milic-Frayling Microsoft Research.
Chapter 4 Query Languages.... Introduction Cover different kinds of queries posed to text retrieval systems Keyword-based query languages  include simple.
Cultivating Research Taste (illustrated via a journey in Program Synthesis research) Programming Languages Mentoring Workshop 2015 Sumit Gulwani Microsoft.
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.
Automatically Synthesizing SQL Queries from Input-Output Examples Sai Zhang University of Washington Joint work with: Yuyin Sun.
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.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
The Structure of Information Retrieval Systems LBSC 708A/CMSC 838L Douglas W. Oard and Philip Resnik Session 1: September 4, 2001.
Formal Methods in Invited CBSoft Sep 2015 Sumit Gulwani Data Wrangling & Education.
FlashNormalize: Programming by Examples for Text Normalization International Joint Conference on Artificial Intelligence, Buenos Aires 7/29/2015FlashNormalize1.
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.
HKOI Programming HKOI Training Team (Intermediate) Alan, Tam Siu Lung Unu, Tse Chi Yung.
FlashMeta Microsoft PROSE SDK: A Framework for Inductive Program Synthesis Oleksandr Polozov University of Washington Sumit Gulwani Microsoft Research.
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.
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.
CSE 303 Concepts and Tools for Software Development Richard C. Davis UW CSE – 10/9/2006 Lecture 6 – String Processing.
1 Sections 3.1 – 3.2a Basic Syntax and Semantics Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
Tackling Ambiguity in PBE Rishabh Singh
Capability-Sensitive Query Processing on Internet Sources
Algorithms and Problem Solving
Learn about Office 365 Secure Score - actionable security analytics
Predicting Azure Consumption using Ensemble Learning
Programming by Examples
A Simple Syntax-Directed Translator
6/22/2018 2:09 PM BRK3102 How Microsoft Legal drives down eDiscovery costs with machine learning in Office 365 Rachi Messing Senior Program Manager, O365.
Timesheets and Statusing in Project 2013
Training disclaimer This is a point of time view
Microsoft Build /4/2018 6:08 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Azure Stack Foundation
PROGRAMMING LANGUAGES
Usability Design Space in Programming by Examples
9/14/ :46 AM BRK3293 How the Portland Trail Blazers Use Personalization and Acxiom Data to Target Customers Chris Hoder Program Manager, AI + Research.
Programming by Examples
Relational Algebra Chapter 4, Part A
CS416 Compiler Design lec00-outline September 19, 2018
Relational Algebra 461 The slides for this text are organized into chapters. This lecture covers relational algebra, from Chapter 4. The relational calculus.
Introduction CI612 Compiler Design CI612 Compiler Design.
Programming by Examples
Programming by Examples
Lecture 12: Data Wrangling
Open sourced Power BI visuals The power you need for your custom visualization needs Lukasz Pawlowski Senior Program
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Agenda About Excel/Calc Spreadsheets Key Features
Algorithms and Problem Solving
CS416 Compiler Design lec00-outline February 23, 2019
5/8/2019 3:20 AM bQuery-Tool 3.0 A new and elegant way to create queries and ad-hoc reports on your Baan/Infor ERP LN data. This Baan session is a query.
Lec00-outline May 18, 2019 Compiler Design CS416 Compiler Design.
Faculty of Computer Science and Information System
Presentation transcript:

Programming by Examples Sumit Gulwani Alex Polozov PLDI Tutorial June 2016

Outline Core Synthesis Architecture [1 hour by Sumit] Domain-specific Languages Search methodology Ranking function PROSE Framework [1:15 hours by Alex] Concepts: VSAs, Witness Functions Live coding demo Next generation Synthesis [15 min by Sumit] Interactive Predictive Adaptive

The PROSE Team Allen Cypher Sumit Gulwani Ranvijay Kumar Daniel Perelman Vu Le We are hiring interns/full-time! Alex Polozov Mohammad Raza Danny Simmons Adam Smith Abhishek Udupa

Machine Learning, Analytics, & Data Science Conference 4/18/2018 3:15 PM Motivation 99% of computer users cannot program! They struggle with simple repetitive tasks. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Spreadsheet help forums 4

Typical help-forum interaction 300_w30_aniSh_c1_b  w30 300_w5_aniSh_c1_b  w5 =MID(B1,5,2) =MID(B1,5,2) =MID(B1,FIND(“_”,$B:$B)+1, FIND(“_”,REPLACE($B:$B,1,FIND(“_”,$B:$B), “”))-1) 5

Flash Fill (Excel 2013 feature) demo “Automating string processing in spreadsheets using input-output examples”; POPL 2011; Sumit Gulwani 6

Data Science Class Assignment To get Started!

FlashExtract Demo Ships inside two Microsoft products: Powershell ConvertFrom-String cmdlet Custom Log, Custom Field “FlashExtract: A Framework for data extraction by examples”; PLDI 2014; Vu Le, Sumit Gulwani

Killer Application: Data Wrangling Machine Learning, Analytics, & Data Science Conference 4/18/2018 3:15 PM Killer Application: Data Wrangling Data is the new oil. Data scientists spend 80% time wrangling data. Extraction FlashExtract:Tabular data from log files [PLDI 2014] Tabular data from spreadsheets [PLDI 2015] Transformation FlashFill: Syntactic String Transformations [POPL 2011] Semantic String Transformations [VLDB 2012] Number Transformations [CAV 2013] Date Transformations [POPL 2016] Normalization Transformations [IJCAI 2015] Formatting FlashRelate: Table layout transformations [PLDI 2011] Repetitive editing in Powerpoint [AAAI 2014] © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Programming-by-Examples Architecture Machine Learning, Analytics, & Data Science Conference 4/18/2018 3:15 PM Programming-by-Examples Architecture Example-based Intent Program set (a sub-DSL of D) Program Synthesizer DSL D 10 © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Domain-specific Language (DSL) Balanced Expressiveness Expressive enough to cover wide range of tasks Restricted enough to enable efficient search Restricted set of operators those with small inverse sets Restricted syntactic composition of those operators Natural computation patterns Increased user understanding/confidence Enables selection between programs, editing

DSL for String Transformations Machine Learning, Analytics, & Data Science Conference 4/18/2018 3:15 PM DSL for String Transformations 𝑇𝑢𝑝𝑙𝑒 𝑆𝑡𝑟𝑖𝑛𝑔 𝑥 1 ,…,𝑆𝑡𝑟𝑖𝑛𝑔 𝑥 𝑛 → 𝑆𝑡𝑟𝑖𝑛𝑔 atomic expression A := input string X := x1 | x2 | … position expression P := K | Pos(X, R1, R2, K) SubStr(X,P,P) Kth position in X whose left/right side matches with R1/R2. “Automating String Processing in Spreadsheets using Input-Output Examples”; POPL 2011; Sumit Gulwani © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Substring Operator Evaluation of Expr SubStr(x,p,p’) , where p=Pos(x,r1,r2,k) & p’=Pos(x,r1’,r2’,k’) matches r1 matches r2 matches r1’ matches r2’ p p’ w x Two special cases: r1 = r2’ = 𝜖 : This describes the substring r2 = r1’ = 𝜖 : This describes the context around the substring General case is very expressive (describes substring & context) Regular exprs are simple (they describe local properties).

DSL for String Transformations Machine Learning, Analytics, & Data Science Conference 4/18/2018 3:15 PM DSL for String Transformations 𝑇𝑢𝑝𝑙𝑒 𝑆𝑡𝑟𝑖𝑛𝑔 𝑥 1 ,…,𝑆𝑡𝑟𝑖𝑛𝑔 𝑥 𝑛 → 𝑆𝑡𝑟𝑖𝑛𝑔 top-level expr T := if-then-else(B,C,T) | C condition-free expr C := | A atomic expression A := | ConstantString input string X := x1 | x2 | … position expression P := K | Pos(X, R1, R2, K) Boolean expression B := … Concatenate(A,C) SubStr(X,P,P) Kth position in X whose left/right side matches with R1/R2. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

FlashExtract DSL 𝑆𝑡𝑟𝑖𝑛𝑔 𝑑→𝐿𝑖𝑠𝑡(𝑃𝑜𝑠𝑃𝑎𝑖𝑟) Seq expr E := Map(N, 𝜆z: S[z]) | Merge(T1, T2) some lines N := FilterByPosition(L, init, iter) | Filter(L, 𝜆z: F) line filter function F := Contains(z,r,K) | startsWith(z,r) all lines L := Split(d,”\n”) [z]) | Filter(L, 𝜆y: F[prevLine(y)]) [z] substr expr S[z] := “FlashExtract: A Framework for data extraction by examples”; PLDI 2014; Vu Le, Sumit Gulwani

Search Methodology Goal: Set of expr of kind 𝑒 that satisfies spec 𝜙 [denoted 𝑒⊨𝜙 ] 𝑒: DSL (top-level) expression 𝜙: Conjunction of (input state 𝜎 , output value 𝑣) [denoted 𝜎⇝𝑣] “FlashMeta: A Framework for Inductive Program Synthesis”; [OOPSLA 2015] Alex Polozov, Sumit Gulwani

Search Methodology Goal: Set of expr of kind 𝑒 that satisfies spec 𝜙 [denoted 𝑒⊨𝜙 ] 𝑒: DSL (top-level) expression 𝜙: Conjunction of (input state 𝜎 , output value 𝑣) [denoted 𝜎⇝𝑣] Methodology: Based on divide-and-conquer style problem decomposition. 𝑒⊨𝜙 is reduced to simpler problems (over sub-expressions of e or sub-constraints of 𝜙). Top-down (as opposed to bottom-up enumerative search). “FlashMeta: A Framework for Inductive Program Synthesis”; [OOPSLA 2015] Alex Polozov, Sumit Gulwani

Problem Reduction Rules 𝑒⊨ 𝜙 1 ∧ 𝜙 2 = 𝐼𝑛𝑡𝑒𝑟𝑠𝑒𝑐𝑡( 𝑒⊨ 𝜙 1 , 𝑒⊨ 𝜙 2 ) An alternative strategy: 𝑒⊨ 𝜙 1 ∧ 𝜙 2 = 𝐹𝑖𝑙𝑡𝑒𝑟( 𝑒⊨ 𝜙 1 , 𝜙 2 ) Let 𝑒 be a non-terminal defined as 𝑒 ≔ 𝑒 1 | 𝑒 2 𝑒⊨𝜙 = 𝑈𝑛𝑖𝑜𝑛( 𝑒 1 ⊨𝜙 , 𝑒 2 ⊨𝜙 )

Problem Reduction Rules Inverse Set: Let F be an n-ary operator. 𝐹 −1 𝑣 = 𝑢 1 ,…, 𝑢 𝑛 𝐹 𝑢 1 ,…, 𝑢 𝑛 =𝑣} 𝐶𝑜𝑛𝑐𝑎 𝑡 −1 "Abc" = { "Abc",ϵ , ("𝐴𝑏","c"), ("A","bc"), (ϵ,"Abc")} 𝐹 𝑒 1 , …,𝑒 𝑛 ⊨𝜎⇝𝑣 = 𝑈𝑛𝑖𝑜𝑛({F e 1 ⊨𝜎⇝ 𝑢 1 , …, 𝑒 𝑛 ⊨𝜎⇝ 𝑢 𝑛 | 𝑢 1 ,…, 𝑢 𝑛 ∈ 𝐹 −1 𝑣 } 𝐹 𝑆 1 , …, 𝑆 𝑛 denotes 𝐹 𝑒 1 , …,𝑒 𝑛 𝑒 1 ∈ 𝑆 1 ,…, 𝑒 𝑛 ∈ 𝑆 𝑛 } [𝐶𝑜𝑛𝑐𝑎𝑡 𝑋,𝑌 ⊨(𝜎⇝"Abc")] = Union({ 𝐶𝑜𝑛𝑐𝑎𝑡( 𝑋⊨ 𝜎⇝"Abc" , 𝑌⊨ 𝜎⇝𝜖 ), 𝐶𝑜𝑛𝑐𝑎𝑡 𝑋⊨ 𝜎⇝"Ab" , 𝑌⊨ 𝜎⇝"𝑐" , 𝐶𝑜𝑛𝑐𝑎𝑡 𝑋⊨ 𝜎⇝"A" , 𝑌⊨ 𝜎⇝"𝑏𝑐" , 𝐶𝑜𝑛𝑐𝑎𝑡 𝑋⊨ 𝜎⇝ϵ , 𝑌⊨ 𝜎⇝"𝐴𝑏𝑐" })

Problem Reduction Rules Inverse Set: Let F be an n-ary operator. 𝐹 −1 𝑣 = 𝑢 1 ,…, 𝑢 𝑛 𝐹 𝑢 1 ,…, 𝑢 𝑛 =𝑣} 𝐶𝑜𝑛𝑐𝑎 𝑡 −1 "Abc" = { "Abc",ϵ , ("𝐴𝑏","c"), ("A","bc"), (ϵ,"Abc")} 𝐼𝑓𝑇ℎ𝑒𝑛𝐸𝑙𝑠 𝑒 −1 𝑣 = { 𝑡𝑟𝑢𝑒, 𝑣, ⊤ , (𝑓𝑎𝑙𝑠𝑒, ⊤, 𝑣)} 𝑆𝑢𝑏𝑆𝑡 𝑟 −1 "Ab" = …

Problem Reduction Rules Conditional Inverse Set: Let F be an n-ary operator. 𝐹 −1 𝑣 𝑢 1 )= 𝑢 2 ,…, 𝑢 𝑛 𝐹 𝑢 1 ,…, 𝑢 𝑛 =𝑣} 𝑆𝑢𝑏𝑆𝑡 𝑟 −1 "Ab" "Ab cd Ab")= { 0,2 , (6,8) } 𝐹 (𝑒 1 ,…, 𝑒 𝑛 ) ⊨𝜎⇝𝑣 = let 𝐺=𝐺𝑟𝑎𝑚𝑚𝑎𝑟 𝑒 1 in let 𝐺 1 ,…, 𝐺 𝑛 =𝑃𝑎𝑟𝑡𝑖𝑡𝑖𝑜𝑛 𝐺,𝜎 in 𝑈𝑛𝑖𝑜𝑛 𝑗=1..𝑘 𝐹 𝐺, 𝐻 2 , …, 𝐻 𝑛 𝑢 1 =𝐸𝑣𝑎𝑙 𝐺 𝑗 ,𝜎 𝑢 2 , …, 𝑢 𝑛 ∈ 𝐹 −1 𝑣 𝑢 1 𝐻 2 = 𝑒 2 ⊨𝜎⇝ 𝑢 2 𝐻 𝑛 = 𝑒 𝑛 ⊨𝜎⇝ 𝑢 𝑛 Let 𝜎 be the state 𝑥: “𝐴𝑏 𝑐𝑑 𝐴𝑏” . 𝑆𝑢𝑏𝑆𝑡𝑟 𝑥, 𝑃 1 , 𝑃 2 ⊨ 𝜎⇝"cd" = 𝑆𝑢𝑏𝑆𝑡𝑟 𝑥, 𝑃 1 ⊨ 𝜎⇝3 , 𝑃 2 ⊨ 𝜎⇝5

Generalizing output values to output properties User specification Examples: Conjunction of (input state, output value) Inductive Spec: Conjunction of (input state, output property) Search methodology (Conditional) Inverse sets: Back-propagation of values (Conditional) Witness functions: Back-propagation of properties

Problem Reduction list of strings T := Map(L,S) substring fn S := 𝜆y: … list of lines L := Filter(Split(d,"\n"), B) boolean fn B := 𝜆y: … FlashExtract DSL ⋈ Spec for T Spec for L Spec for S ∧

Problem Reduction substring expr E := SubStr(y,P1,P2) position expr P := K | Pos(y,R1,R2,K) SubStr grammar Spec for E Spec for P1 ⋈ Spec for P2 Redmond, WA Redmond, WA

Programming-by-Examples Architecture Machine Learning, Analytics, & Data Science Conference 4/18/2018 3:15 PM Programming-by-Examples Architecture Example-based Intent Program set (a sub-DSL of D) Ranked Program set (a sub-DSL of D) Program Synthesizer Ranking fn DSL D 25 © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Basic ranking scheme Prefer programs with simpler Kolmogorov complexity Prefer fewer constants. Prefer smaller constants. Input Output Rishabh Singh Rishabh Ben Zorn Ben 1st Word If (input = “Rishabh Singh”) then “Rishabh” else “Ben” “Rishabh”

Challenges with Basic ranking scheme Prefer programs with simpler Kolmogorov complexity Prefer fewer constants. Prefer smaller constants. Input Output Rishabh Singh Singh, Rishabh Ben Zorn Zorn, Ben 2nd Word + “, ‘’ + 1st Word “Singh, Rishabh” How to select between Fewer larger constants vs. More smaller constants? Idea: Associate numeric weights with constants.

Challenges with Basic ranking scheme Prefer programs with simpler Kolmogorov complexity Prefer fewer constants. Prefer smaller constants. Input Output Missing page numbers, 1993 1993 64-67, 1995 1995 1st Number from the beginning 1st Number from the end How to select between Same number of same-sized constants? Idea: Examine data features (in addition to program features)

Machine learning based ranking scheme Rank score of a program: Weighted combination of various features. Weights are learned using machine learning. Program features Number of constants Size of constants Features over user data: Similarity of generated output (or even intermediate values) over various user inputs IsYear, Numeric Deviation, Number of characters IsPersonName “Predicting a correct program in Programming by Example”; [CAV 2015] Rishabh Singh, Sumit Gulwani

Outline Core Synthesis Architecture [1 hour by Sumit] Domain-specific Languages Search methodology Ranking function PROSE Framework [1:15 hours by Alex] Concepts: VSAs, Witness Functions Live coding demo Next generation Synthesis [15 min by Sumit] Interactive Predictive Adaptive

Outline Core Synthesis Architecture [1 hour by Sumit] Domain-specific Languages Search methodology Ranking function PROSE Framework [1:15 hours by Alex] Concepts: VSAs, Witness Functions Live coding demo Next generation Synthesis [15 min by Sumit] Interactive Predictive Adaptive

Programming-by-Examples Architecture Machine Learning, Analytics, & Data Science Conference 4/18/2018 3:15 PM Programming-by-Examples Architecture Refined Intent Example based Intent Ranked Program set (a sub-DSL of D) Intended Program in D Program Synthesizer Debugging Translator Test inputs Ranking fn DSL D Intended Program in R/Python/C#/C++/… 32 © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Interactive Debugging Machine Learning, Analytics, & Data Science Conference 4/18/2018 3:15 PM Interactive Debugging Sampling inputs Asking questions Visual explanations of the synthesized program 33 © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Programming-by-Examples Architecture Machine Learning, Analytics, & Data Science Conference 4/18/2018 3:15 PM Programming-by-Examples Architecture Refined Intent Example based Intent Ranked Program set (a sub-DSL of D) Intended Program in D Program Synthesizer Debugging Incrementality Translator Test inputs Ranking fn DSL D Intended Program in R/Python/C#/C++/… 34 © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Predictive Intended programs can sometimes be synthesized from just the input. Tabular data extraction, Sort, Join Can save large amount of user effort. User need not provide examples for each of tens of columns.

Programming-by-Examples Architecture Machine Learning, Analytics, & Data Science Conference 4/18/2018 3:15 PM Programming-by-Examples Architecture Refined Intent Example based Intent Ranked Program set (a sub-DSL of D) Intended Program in D Program Synthesizer Debugging Incrementality Translator Test inputs Ranking fn DSL D Intended Program in R/Python/C#/C++/… Learner Interaction history 36 © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Adaptive Learn from past interactions of the same user (personalized experience). of other users in the enterprise/cloud. The synthesis sessions now require less interaction.

Reference [based on Marktoberdorf Summer School 2015 Lecture Notes] “Programming by Examples (and its applications in Data Wrangling)”, In Verification and Synthesis of Correct and Secure Systems; IOS Press; 2016 [based on Marktoberdorf Summer School 2015 Lecture Notes]