Download presentation

Presentation is loading. Please wait.

Published byAiyana Saile Modified over 2 years ago

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

2
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

3
Help-forums

4

5
Excel Help-forums

6
upper 45 or 95

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

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

9
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

10
Number Transformations

11
Number Transformation Language

12

13

14

15
Number Format Exactly 2 decimal places

16
Semantics Exactly 2 decimal places 24.20

17
GenerateStr

18
Intersect

19
Extension to Integer parts

20

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

22
GenerateStr

23
Intersect

24

25

26

27

28

29

30
GenerateStr Only need to maintain greatest value

31
Intersect

32
Combining String and Number Transformations

33
String Language [GulwaniPOPL11]

34
Combined Language

35
Combination Examples

36
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)

37
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)

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

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

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

41
Intersection DAG intersection Edge-wise program intersection

42
Experiments

43
Benchmarks 50 benchmark problems –Help forums –Excel product team

44
Number of I/O examples

45
Performance

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

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

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

49
Questions & Comments

50
Backup slides

51
Number Format

52
Number Format _

53
ab cd ef gh ij kl

54
Help-forums

55
Number Format At most 2 decimal places

56
Number Format _ Exactly 2 decimal places with space

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google