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

Slides:



Advertisements
Similar presentations
Towards Data Mining Without Information on Knowledge Structure
Advertisements

4-3 Writing Functions Warm Up Lesson Presentation Lesson Quiz
Path-Sensitive Analysis for Linear Arithmetic and Uninterpreted Functions SAS 2004 Sumit Gulwani George Necula EECS Department University of California,
Simplifications of Context-Free Grammars
Analysis of Computer Algorithms
Polygon Scan Conversion – 11b
Break Time Remaining 10:00.
This module: Telling the time
© Telcordia Technologies 2004 – All Rights Reserved AETG Web Service Advanced Features AETG is a service mark of Telcordia Technologies. Telcordia Technologies.
Advanced Methods and Analysis for the Learning and Social Sciences PSY505 Spring term, 2012 March 26, 2012.
GIS Lecture 8 Spatial Data Processing.
Finding Equations of Exponential Function
Comparison of X-ray diffraction patterns of La 2 CuO 4+   from different crystals at room temperature Pia Jensen.
= First write the numbers one on top of the other Make sure the tens and units line up ____.
Functional Question Foundation (Algebra 3) For the week beginning ….
What Does This Program Do?
: 3 00.
5 minutes.
Types of clocks. Types of clocks Sand clock or Hourglass clock.
Bell Schedules Club Time is available from 8:05-8:20  1 st 8:20 – 9:15  2 nd 9:20 – 10:10  3 rd 10:15 – 11:05  4 th 11:10 – 12:50 A(11:10)
CSE20 Lecture 15 Karnaugh Maps Professor CK Cheng CSE Dept. UC San Diego 1.
Clock will move after 1 minute
Other Dynamic Programming Problems
Select a time to count down from the clock above
1 Decidability continued…. 2 Theorem: For a recursively enumerable language it is undecidable to determine whether is finite Proof: We will reduce the.
From Verification to Synthesis Sumit Gulwani Microsoft Research, Redmond August 2013 Marktoberdorf Summer School Lectures: Part 1.
Constraint Based Synthesis for Beginners PSY 2012 Armando Solar-Lezama.
Chapter 3. Expressions and Interactivity CSC125 Introduction to C++
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.
1 COMP541 Combinational Logic Montek Singh Jan 16, 2007.
Usable Synthesis Sumit Gulwani Microsoft Research, Redmond Usable Verification Workshop November 2010 MSR Redmond.
Programming Fundamentals (750113) Ch1. Problem Solving
Programming by Example using Least General Generalizations Mohammad Raza, Sumit Gulwani & Natasa Milic-Frayling Microsoft Research.
CH07: Writing the Programs Does not teach you how to program, but point out some software engineering practices that you should should keep in mind as.
October 30, 2008 Extensible Workflow Management for Simmod ESUG32, Frankfurt, Oct 30, 2008 Alexander Scharnweber (DLR) October 30, 2008 Slide 1 > Extensible.
Cultivating Research Taste (illustrated via a journey in Program Synthesis research) Programming Languages Mentoring Workshop 2015 Sumit Gulwani Microsoft.
Chapter 3.5 Logic Circuits. How does Boolean algebra relate to computer circuits? Data is stored and manipulated in a computer as a binary number. Individual.
Visual Sequences IQ Tests 1 Dipendra Kumar Misra (Y9201) Mukul Singh (Y9350) Tags : Search, Pattern Recognition, Logic etc Advisor : Dr. Amitabh Mukherjee.
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.
Mastering Char to ASCII AND DOING MORE RELATED STRING MANIPULATION Why VB.Net ?  The Language resembles Pseudocode - good for teaching and learning fundamentals.
Generative Programming Meets Constraint Based Synthesis Armando Solar-Lezama.
Dimensions in Synthesis Part 3: Ambiguity (Synthesis from Examples & Keywords) Sumit Gulwani Microsoft Research, Redmond May 2012.
On realizing shapes in the theory of RNA neutral networks Speaker: Leszek Gąsieniec, U of Liverpool, UK Joint work with: Peter Clote, Boston College, USA.
Computer Systems & Architecture Lesson 4 8. Reconstructing Software Architectures.
5.5 ROOTS AND REAL NUMBERS 5.6 RADICAL EXPRESSIONS Algebra II w/ trig.
FlashNormalize: Programming by Examples for Text Normalization International Joint Conference on Artificial Intelligence, Buenos Aires 7/29/2015FlashNormalize1.
CMSC 330: Organization of Programming Languages Theory of Regular Expressions NFAs  DFAs.
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.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
FlashMeta Microsoft PROSE SDK: A Framework for Inductive Program Synthesis Oleksandr Polozov University of Washington Sumit Gulwani Microsoft Research.
Cross Language Clone Analysis Team 2 February 3, 2011.
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.
Tackling Ambiguity in PBE Rishabh Singh
Outline Core Synthesis Architecture [1 hour by Sumit]
Courtsey & Copyright: DESIGN AND ANALYSIS OF ALGORITHMS Courtsey & Copyright:
Programming by Examples
Review: NFA Definition NFA is non-deterministic in what sense?
Programming by Examples
The point that divides a segment into two congruent segments
COMP541 Combinational Logic - II
Lesson 3.3 Writing functions.
Presentation transcript:

Synthesizing Number Transformations from Input-Output Examples Rishabh Singh and Sumit Gulwani

Number One of the most commonly used data type Number Formatting –Every language has its own format #.00? (C#, Excel), 05.2f (Python, C) –End-users

Help-forums

Excel Help-forums

upper 45 or 95

Observations from Help-forums Input-Output Examples –Specification mechanism Additional inputs for removing ambiguity Excel add-in with same interface

Talk Outline 1.Number Transformation Language 2.Synthesis Algorithm 3.String & Number Language Combination 4.Synthesis Algorithm for Combination 5.Experiments

Generic Framework Expression Language L –Expressive and succinct Efficient Data structures for set of expressions –Version-space algebra GenerateStr –All sets of expressions from I-O example Intersect –Intersect two sets of expressions

Number Transformations

Number Transformation Language

Number Format Exactly 2 decimal places

Semantics Exactly 2 decimal places   24.20

GenerateStr

Intersect

Extension to Integer parts

Round Format =Min(Roundup(A1/45, 0)*45, Roundup(A1/95,0)*95) Round off to upper 45

GenerateStr

Intersect

GenerateStr Only need to maintain greatest value

Intersect

Combining String and Number Transformations

String Language [GulwaniPOPL11]

Combined Language

Combination Examples

Synthesis Algorithm  7/8/2004 1)(-5, -4) 2)(-5, dot -1) 3)(-5, dot 2) 4)(-5, 7) 5)(6, -4) 6)…. Program P 1 to extract 7 in input (P 1, 7 -> 7)

Synthesis Algorithm  7/8/2004 (P 1, 7 -> 7) Program P 2 to extract 07 in input 1)(dot 1, dot 2) 2)(dot 1, dot -1) 3)(-6, -4) 4)(-6, dot -1) 5)(-6, dot 2) 6)…. (P 2, 07 -> 7)

GenerateStr  7/8/2004 (P 1, 7 -> 7) (P 2, 07 -> 7)

GenerateStr  7/8/2004 (P 3, 8 -> 8) (P 4, 08 -> 8)

Constructing the DAG 071/283/ /283/ (P 1, 7 -> 7) (P 2, 07 -> 7) 8

Intersection DAG intersection Edge-wise program intersection

Experiments

Benchmarks 50 benchmark problems –Help forums –Excel product team

Number of I/O examples

Performance

Related work String Transformations [Gulwani POPL11] Table Transformations [Singh,Gulwani VLDB12] Spreadsheet Data Manipulation using Examples[Gulwani, Harris, Singh CACM 2012]

Conclusion Number Transformation Language –Synthesis algorithm String + Number Transformations –Combined Synthesis algorithm

Thanks! End-Users Algorithm Designers Software Developers CAV Large potential

Questions & Comments

Backup slides

Number Format

Number Format _

ab cd ef gh ij kl

Help-forums

Number Format At most 2 decimal places

Number Format _ Exactly 2 decimal places with space