designing extensible, domain-specific languages for … · 2017. 2. 11. · designing extensible,...

225
Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane Jonathan Aldrich Josh Sunshine Source: “An Algorithm to Generate Impossible Art?”, Danny Tarlow 1 Off the Beaten Track ‘17

Upload: others

Post on 15-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Designing extensible, domain-specific languages for mathematical diagrams

Katherine Ye

with Keenan Crane Jonathan Aldrich

Josh Sunshine

Source: “An Algorithm to Generate Impossible Art?”, Danny Tarlow 1Off the Beaten Track ‘17

Page 2: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Designing extensible, domain-specific languages for mathematical diagrams

Katherine Ye

with Keenan Crane Jonathan Aldrich

Josh Sunshine

Source: “An Algorithm to Generate Impossible Art?”, Danny Tarlow 2Off the Beaten Track ‘17

(A proposal for)

Page 3: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Designing extensible, domain-specific languages for mathematical diagrams

Katherine Ye

with Keenan Crane Jonathan Aldrich

Josh Sunshine

Source: “An Algorithm to Generate Impossible Art?”, Danny Tarlow 3Off the Beaten Track ‘17

(A proposal for)

(EXTENDED REMIX)

(45 mins)

Page 4: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Motivation

4

Page 5: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

sin ✓ =opposite

hypotenuse

cos ✓ =

adjacent

hypotenuse

5

Page 6: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

6

Page 7: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

7

Page 8: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

8

Page 9: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

9

Sometimes people do illustrate mathematics beautifully.

Page 10: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

10

Page 11: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

11

Source: Algebraic Topology Hatcher

illustrating groups (with their notations)

Page 12: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: Visual Group Theory 12

composing different types of diagrams

Page 13: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Problem:

Drawing good diagrams requires a tremendous amount of effort and expertise.

13

Page 14: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

People have very powerful facilities for taking in information visually… and thinking spatially.

On the other hand, they do not have a very good built-in facility for inverse vision, that is, turning an internal spatial understanding back into a two-dimensional image.

Consequently, mathematicians usually have fewer and poorer figures in their papers and books than in their heads.

William Thurston Fields medalist

14

Page 15: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

People have very powerful facilities for taking in information visually… and thinking spatially.

On the other hand, they do not have a very good built-in facility for inverse vision, that is, turning an internal spatial understanding back into a two-dimensional image.

Consequently, mathematicians usually have fewer and poorer figures in their papers and books than in their heads.

William Thurston Fields medalist

15

Page 16: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

People have very powerful facilities for taking in information visually… and thinking spatially.

On the other hand, they do not have a very good built-in facility for inverse vision, that is, turning an internal spatial understanding back into a two-dimensional image.

Consequently, mathematicians usually have fewer and poorer figures in their papers and books than in their heads.

William Thurston Fields medalist

16

Page 17: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

17

What if mathematicians had more and richer figures in their papers and books than in their heads?

Page 18: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Penrose

Source: “An Algorithm to Generate Impossible Art?”, Danny Tarlow 18

Page 19: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: https://sallyarjoon.wordpress.com/2013/04/01/enzymes/

Penrose

19

Page 20: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

80% 20%

Casual users

20

Page 21: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

10 seconds

21

Page 22: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

… …A

Bp

A

B

p

A

B

p

10 seconds

22

Page 23: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

80% 20%

Power users

23

Page 24: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

… …A

Bp

A

B

p

A

B

p

2 hours

24

Page 25: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Existing solutions for diagramming

25

Page 26: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Factors in choosing a tool:

Programmatic, direct manipulation, domain knowledge

26

Page 27: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

The design space

27

more programmatic

more direct

more domain knowledge

Page 28: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Writing a program for a diagram

28

Page 29: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

29

K4 =⌦a, b | a2 = b2 = (ab)2 = e

Page 30: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

30

K4 =⌦a, b | a2 = b2 = (ab)2 = e

Page 31: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

%nodestylecirc/.style={circle,draw=black!60,fill=green!10,minimumsize=7mm}],

%nodes\node[circ](gen_bl){};\node[circ](gen_tl)[above=ofgen_bl]{};\node[circ](gen_br)[right=ofgen_bl]{};\node[circ](gen_tr)[above=ofgen_br,right=ofgen_tl]{};

%\node[circ](gen_bl);%\node[circ](gen_tl)[above=ofgen_bl];%{2}label%\node[circ](gen_tr)[above=ofgen_br,right=ofgen_tl];%\node[circ](gen_br)[right=ofgen_bl];

%drawlinesbetweennodes\draw[-][red,thick](gen_tl.south)--(gen_bl.north);\draw[-][blue,thick](gen_tl.east)--(gen_tr.west);\draw[-][blue,thick](gen_bl.east)--(gen_br.west);\draw[-][red,thick](gen_tr.south)--(gen_br.north);

TikZ

31

K4 =⌦a, b | a2 = b2 = (ab)2 = e

Page 32: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

%nodestylecirc/.style={circle,draw=black!60,fill=green!10,minimumsize=7mm}],

%nodes\node[circ](gen_bl){};\node[circ](gen_tl)[above=ofgen_bl]{};\node[circ](gen_br)[right=ofgen_bl]{};\node[circ](gen_tr)[above=ofgen_br,right=ofgen_tl]{};

%\node[circ](gen_bl);%\node[circ](gen_tl)[above=ofgen_bl];%{2}label%\node[circ](gen_tr)[above=ofgen_br,right=ofgen_tl];%\node[circ](gen_br)[right=ofgen_bl];

%drawlinesbetweennodes\draw[-][red,thick](gen_tl.south)--(gen_bl.north);\draw[-][blue,thick](gen_tl.east)--(gen_tr.west);\draw[-][blue,thick](gen_bl.east)--(gen_br.west);\draw[-][red,thick](gen_tr.south)--(gen_br.north);

TikZ

node style

32

K4 =⌦a, b | a2 = b2 = (ab)2 = e

Page 33: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

%nodestylecirc/.style={circle,draw=black!60,fill=green!10,minimumsize=7mm}],

%nodes\node[circ](gen_bl){};\node[circ](gen_tl)[above=ofgen_bl]{};\node[circ](gen_br)[right=ofgen_bl]{};\node[circ](gen_tr)[above=ofgen_br,right=ofgen_tl]{};

%\node[circ](gen_bl);%\node[circ](gen_tl)[above=ofgen_bl];%{2}label%\node[circ](gen_tr)[above=ofgen_br,right=ofgen_tl];%\node[circ](gen_br)[right=ofgen_bl];

%drawlinesbetweennodes\draw[-][red,thick](gen_tl.south)--(gen_bl.north);\draw[-][blue,thick](gen_tl.east)--(gen_tr.west);\draw[-][blue,thick](gen_bl.east)--(gen_br.west);\draw[-][red,thick](gen_tr.south)--(gen_br.north);

TikZ

node style

node positions

33

K4 =⌦a, b | a2 = b2 = (ab)2 = e

Page 34: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

%nodestylecirc/.style={circle,draw=black!60,fill=green!10,minimumsize=7mm}],

%nodes\node[circ](gen_bl){};\node[circ](gen_tl)[above=ofgen_bl]{};\node[circ](gen_br)[right=ofgen_bl]{};\node[circ](gen_tr)[above=ofgen_br,right=ofgen_tl]{};

%\node[circ](gen_bl);%\node[circ](gen_tl)[above=ofgen_bl];%{2}label%\node[circ](gen_tr)[above=ofgen_br,right=ofgen_tl];%\node[circ](gen_br)[right=ofgen_bl];

%drawlinesbetweennodes\draw[-][red,thick](gen_tl.south)--(gen_bl.north);\draw[-][blue,thick](gen_tl.east)--(gen_tr.west);\draw[-][blue,thick](gen_bl.east)--(gen_br.west);\draw[-][red,thick](gen_tr.south)--(gen_br.north);

TikZ

node style

node positions

line style + positions

34

K4 =⌦a, b | a2 = b2 = (ab)2 = e

Page 35: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

The design space

35

more programmatic

more direct

more domain knowledge

TikZ

Page 36: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

36

Creating a diagram via a GUI

Page 37: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: Keenan Crane 37

curvature of a polyhedron

Page 38: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

38

curvature of a polyhedron

Page 39: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

39

curvature of a polyhedron

Page 40: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

40

curvature of a polyhedron

Page 41: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: Keenan Crane 41

curvature of a polyhedron

8 hours of painstaking clicking and dragging

Page 42: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

42

Page 43: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

43

no style reuse!

Page 44: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

The design space

44

more programmatic

more direct

more domain knowledge

Illustrator

Page 45: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Burn it all down and write your own software or DSL?

45

Page 46: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Group Explorer KnotPlot

strid

BayesNet

JaxoDraw

46

Page 47: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Group Explorer KnotPlot

strid

BayesNet

JaxoDraw

47

Page 48: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

The design space

48

more programmatic

more direct

more domain knowledge

Custom DSLs

Page 49: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Penrose

Source: “An Algorithm to Generate Impossible Art?”, Danny Tarlow 49

Page 50: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

50

Page 51: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Notation

Set A

Set B

Point p

p 2 A

51

Page 52: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Penrose architecture

52

Page 53: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Penrose architecture

Substance View Style

53

Page 54: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

SetASetBPointpInpA

“Let A and B be sets, and p be a point in A.”

Penrose architecture

Substance View Style

54

Page 55: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Dimension2CoordinatesNone

Penrose architecture

Substance View Style

55

SetASetBPointpInpA

Page 56: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Penrose architecture

Substance View Style

56

SetASetBPointpInpA

Dimension2CoordinatesNone

Page 57: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Penrose architecture

Intermediate representations

Sampling and optimization

Substance View Style

57

SetASetBPointpInpA

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Dimension2CoordinatesNone

Page 58: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Penrose architecture

Intermediate representations

Sampling and optimization

Substance View Style

… …A

Bp

A

B

p

A

B

p

58

SetASetBPointpInpA

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Dimension2CoordinatesNone

Page 59: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Penrose architecture

Intermediate representations

Sampling and optimization

Substance View Style

… …A

Bp

A

B

p

A

B

p

59

SetASetBPointpInpA

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Dimension2CoordinatesNone

Page 60: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

The design space

60

more programmatic

more direct

more domain knowledge

Penrose

Page 61: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

61

…plus extensibility!

Page 62: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

The design space

62

more programmatic

more direct

more domain knowledge

Penrose

prodirect manipulation

Sketch-n-Sketch (Chugh et al, PLDI ’16)

Page 63: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

An example of our vision

63

Page 64: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

I’m demonstrating a mockup of a workflow that I hope to demo live in a few months.

64

Page 65: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

We have a very simple prototype for set theory, which I won’t demo.

65

Page 66: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Domain: Set theory → Point-set topology

66

Page 67: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

67

Phases: Implementing the DSL → using the DSL

Page 68: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Implementing the DSL

68

Page 69: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Declarations

dataSubDecl=DeclObjectdataObject=OSSet|OPPointdataSet=Set’StringSetTypedataSetType=Open|Closed|UnspecifieddataPt=Pt’String

Constraints

dataConstraint=SubsetStringString|PointInStringString

69

Implementing a set theory DSL

Page 70: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Declarations

dataSubDecl=DeclObjectdataObject=OSSet|OPPointdataSet=Set’StringSetTypedataSetType=Open|Closed|UnspecifieddataPt=Pt’String

Constraints

dataConstraint=SubsetStringString|PointInStringString

70

Implementing a set theory DSL

Page 71: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Declarations

dataSubDecl=DeclObjectdataObject=OSSet|OPPointdataSet=Set’StringSetTypedataSetType=Open|Closed|UnspecifieddataPt=Pt’String

Constraints

dataConstraint=SubsetStringString|PointInStringString

71

Implementing a set theory DSL

Page 72: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Declarations

dataSubDecl=DeclObjectdataObject=OSSet|OPPointdataSet=Set’StringSetTypedataSetType=Open|Closed|Clopen|UnspecifieddataPt=Pt’String

Constraints

dataConstraint=SubsetStringString|PointInStringString

72

Implementing a set theory DSL

Page 73: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

73

Implementing a set theory DSL

Declarations

dataSubDecl=DeclObjectdataObject=OSSet|OPPointdataSet=Set’StringSetTypedataSetType=Open|Closed|Clopen|UnspecifieddataPt=Pt’String

Constraints

dataConstraint=SubsetStringString|PointInStringString

Page 74: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Declarations

dataSubDecl=DeclObjectdataObject=OSSet|OPPointdataSet=Set’StringSetTypedataSetType=Open|Closed|Clopen|UnspecifieddataPt=Pt’String

Constraints

dataConstraint=SubsetStringString|PointInStringString

74

Implementing a set theory DSL

Page 75: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Declarations

dataSubDecl=DeclObjectdataObject=OSSet|OPPointdataSet=Set’StringSetTypedataSetType=Open|Closed|Clopen|UnspecifieddataPt=Pt’String

Constraints

dataConstraint=SubsetStringString|PointInStringString

75

Implementing a set theory DSL

Page 76: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

SetASetBPointpInpA

Dimension2CoordinatesNone

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Substance View Style

76

Set theory DSL

Page 77: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Declarations

dataSubDecl=DeclObjectdataObject=OSSet|OPPoint|OMMapdataSet=Set’StringSetTypedataSetType=Open|Closed|Clopen|UnspecifieddataPt=Pt’StringdataMap=Map’StringStringString

Constraints

dataConstraint=SubsetStringString|PointInStringString

77

Extending the set theory DSL

Page 78: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Using the DSL

78

Page 79: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Open sets, closed sets, continuous maps

79

Page 80: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

80

Page 81: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

An open ball in R2

A

A=Or(p,Rn)

p

r

81

Page 82: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

An open ball in R2

A

OpenBallA

82

Page 83: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

An closed ball in R2

A

ClosedBallA

83

Page 84: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

An open set in R2

OpenSetU

84

Page 85: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

An open set in R2, simplified

OpenSetU

U

85

Page 86: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

An closed set in R2

ClosedSetU now contains boundary

86

Page 87: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

U

ClosedSetU

87

An closed set in R2, simplified

Page 88: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Continuous maps

88

Page 89: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

89

Concrete anti-example: discontinuous map

Page 90: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

90

function “rips” domain

Concrete anti-example: discontinuous map

Page 91: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

91

interval in function’s co-domain is open

Concrete anti-example: discontinuous map

Page 92: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

92

inverse image of open interval is not open!

Concrete anti-example: discontinuous map

Page 93: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

93

inverse image of open interval is not open!

Concrete anti-example: discontinuous map

Page 94: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

94

Generalizing the intuition

Page 95: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

95

Generalizing the intuition

Page 96: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

96

Generalizing the intuition

Picture this!

Page 97: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

SetASetBSetR^nSetR^mSubsetAR^nSubsetBR^mMapfABOpenSetUSubsetUBSetf^{-1}(U)Subsetf^{-1}(U)A

Substance

97

Page 98: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

SetASetBSetR^nSetR^mSubsetAR^nSubsetBR^mMapfABOpenSetUSubsetUBSetf^{-1}(U)Subsetf^{-1}(U)A

Substance

98

declarations

Page 99: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

SetASetBSetR^nSetR^mSubsetAR^nSubsetBR^mMapfABOpenSetUSubsetUBSetf^{-1}(U)Subsetf^{-1}(U)A

Substance

99

constraints

Page 100: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

StyleAllAuto

Substance Style

100

SetASetBSetR^nSetR^mSubsetAR^nSubsetBR^mMapfABOpenSetUSubsetUBSetf^{-1}(U)Subsetf^{-1}(U)A

Page 101: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

101

Page 102: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

102

Page 103: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

103

Page 104: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

Rm

104

Page 105: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

Rm

f

105

Page 106: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

U

Rm

f

106

Page 107: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

f -1(U)

Rn

B

U

Rm

f

107

Page 108: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

f -1(U)

Rn

B

U

Rm

f

108

Page 109: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

StyleAllAutoShapeR^nSquareShapeR^mSquareColorR^nYellowColorR^mYellow

Substance Style

109

SetASetBSetR^nSetR^mSubsetAR^nSubsetBR^mMapfABOpenSetUSubsetUBSetf^{-1}(U)Subsetf^{-1}(U)A

Page 110: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

f -1(U)

Rn

B

U

Rm

f

110

Page 111: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

f -1(U)

Rn

B

U

Rm

f

111

animation, interactivity, fuzzing

Page 112: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

f -1(U)

Rn

B

U

Rm

f

112

animation, interactivity, fuzzing

definition holds for the “edge case” of empty sets

Page 113: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A harder definition…

113

Page 114: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

114

Page 115: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

115

Picture this!

Page 116: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

116

Picture this!

Page 117: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

117

SetASetBSetR^nSetR^mSubsetAR^nSubsetBR^mMapfABOpenSetUSubsetUB

Substance Style

PointpInpAPointf(p)Inf(p)UOpenSetVSubsetVAInpVSetf(V)Subsetf(V)UInf(p)f(V)

underline denotes implicit in notation. f(V) might not be open but is depicted as such

StyleAllAutoShapeR^nSquareShapeR^mSquareColorR^nYellowColorR^mYellow

Page 118: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

Rm

118

Page 119: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

Rm

f

119

Page 120: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

Rm

p

f

120

Page 121: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

Rm

p

f

U

121

Page 122: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

Rm

p

f

U

122

f(p)

Page 123: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

V

Rm

p

f

U

f(p)

123

Page 124: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

124

Page 125: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

125

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

Page 126: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

How do the two definitions relate?

126

Page 127: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

127

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

A

f -1(U)

Rn

B

U

Rm

f

Page 128: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Can prove (1) → (2) via diagram!

128

Page 129: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

129

Page 130: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

130

Page 131: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

131

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

A

f -1(U)

Rn

B

U

Rm

f

Page 132: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

132

A

f -1(U)

Rn

B

U

Rm

f

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(1)

(2)

(1) -> (2)

A

Rn Rm

p

f

U

f(p)

Page 133: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

133

A

f -1(U)

Rn

B

U

Rm

f

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(1)

(2)

(1) -> (2)

A

Rn Rm

f

U

f(p)p

f -1(U)

Page 134: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

134

A

f -1(U)

Rn

B

U

Rm

f

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(1)

(2)

(1) -> (2)

A

Rn Rm

f

U

f(p)p

f -1(U)

(literally)

Page 135: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

135

A

f -1(U)

Rn

B

U

Rm

f

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(1)

(2)

(1) -> (2)

A

Rn Rm

f

U

f(p)p

f -1(U)

O

open ball centered at p

Page 136: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

recall: an open set in R2

OpenSetU

136

Page 137: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

137

A

f -1(U)

Rn

B

U

Rm

f

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(1)

(2)

(1) -> (2)

A

Rn Rm

f

U

p

f -1(U)

f(p)

Of(O)

open ball containing f(p)

Page 138: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

138

A

f -1(U)

Rn

B

U

Rm

f

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(1)

(2)

(1) -> (2)

A

Rn Rm

f

U

p

f -1(U)

f(p)

Vf(V)

open ball containing f(p)

Page 139: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

139

A

f -1(U)

Rn

B

U

Rm

f

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(1)

(2)

(1) -> (2)

A

Rn Rm

f

U

p

f -1(U)

f(p)

Vf(V)

Page 140: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

140

A

f -1(U)

Rn

B

U

Rm

f

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(1)

(2)

(1) -> (2)

A

Rn Rm

f

U

p

f -1(U)

f(p)

Vf(V)

Page 141: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

141

A

f -1(U)

Rn

B

U

Rm

f

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(1)

(2)

(1) -> (2)

A

Rn Rm

f

U

p

f -1(U)

f(p)

Vf(V)

not centered!

Page 142: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

142

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(2)

Prodirect manipulation: center the points

want to center this point

Page 143: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

143

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(2)

Prodirect manipulation: center the points

Page 144: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

144

StyleAllAutoShapeR^nSquareShapeR^mSquareColorR^nYellowColorR^mYellow

Substance Style

SetASetBSetR^nSetR^mSubsetAR^nSubsetBR^mMapfABOpenSetUSubsetUB

PointpInpAPointf(p)Inf(p)UOpenSetVSubsetVAInpVSetf(V)Subsetf(V)UInf(p)f(V)

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

(2)

Page 145: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

145

A

Rn

B

V

Rm

f

U

f(p)

f(V)

(2)

StyleAllAutoShapeR^nSquareShapeR^mSquareColorR^nYellowColorR^mYellow

Substance Style

p

SetASetBSetR^nSetR^mSubsetAR^nSubsetBR^mMapfABOpenSetUSubsetUB

PointpInpAPointf(p)Inf(p)UOpenSetVpSubsetVAInpVSetf(V)Subsetf(V)UInf(p)f(V)runtime

infers code

changes!

Page 146: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

146

A

Rn

B

V

Rm

f

U

f(p)

f(V)

(2)

StyleAllAutoShapeR^nSquareShapeR^mSquareColorR^nYellowColorR^mYellow

Substance Style

p

SetASetBSetR^nSetR^mSubsetAR^nSubsetBR^mMapfABOpenSetUSubsetUB

PointpInpAPointf(p)Inf(p)UOpenSetVpSubsetVAInpVSetf(V)Subsetf(V)UInf(p)f(V)runtime

infers code

changes!

now centered at p

Page 147: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

147

Penrose takeaways

• Easily implement and extend DSLs • Easily reuse styles • Expertise encoded! Substantial

benefits accrue with each new diagram

• Just throw in notation; get a useful illustration

Page 148: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

148

Penrose takeaways

• Easily implement and extend DSLs • Easily reuse styles • Expertise encoded! Substantial

benefits accrue with each new diagram

• Just throw in notation; get a useful illustration

Page 149: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

149

Penrose takeaways

• Easily implement and extend DSLs • Easily reuse styles • Expertise encoded! Substantial

benefits accrue with each new diagram

• Just throw in notation; get a useful illustration

Page 150: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

150

Penrose takeaways

• Easily implement and extend DSLs • Easily reuse styles • Expertise encoded! Substantial

benefits accrue with each new diagram

• Just throw in notation; get a useful illustration

Page 151: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

151

Penrose takeaways

• Easily implement and extend DSLs • Easily reuse styles • Expertise encoded! Substantial

benefits accrue with each new diagram

• DSL users can just throw in notation; get a useful illustration

Page 152: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Language design challenges

152

Page 153: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Penrose provides an extensible visual semantics for mathematical notation.

153

Page 154: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

… …A

Bp

A

B

p

A

B

p

154

Page 155: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

… …A

Bp

A

B

p

A

B

p

155

Where are the semantics?

Page 156: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Notation

Set A

Set B

Point p

p 2 A

“Let A and B be sets, and p be a point in A.”

156

Page 157: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

SetASetBPointpInpA

“Let A and B be sets, and p be a point in A.”

Dimension2CoordinatesNone

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Substance View Style

157

Page 158: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

SetASetBPointpInpA

“Let A and B be sets, and p be a point in A.”

Dimension2CoordinatesNone

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Substance View Style

158

… …A

Bp

A

B

p

A

B

p

Page 159: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

SetASetBPointpInpA

“Let A and B be sets, and p be a point in A.”

Dimension2CoordinatesNone

ShapeSetDottedCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Substance View Style

159

… …A

Bp

A

B

p

A

B

p

incorrect semantics?

Page 160: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

160

Another way to give semantics to mathematical notation…

Page 161: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

161

Another way to give semantics to mathematical notation…

Page 162: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Once formalized as a procedure, a mathematical idea becomes a tool that can be used directly to compute results.

162

Another way to give semantics to mathematical notation…

Page 163: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

163

Another way to give semantics to mathematical notation…

math notation

PL’s operational semantics

Page 164: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

164

Another way to give semantics to mathematical notation…

math notation

PL’s operational semantics

PL’s denotational semantics

Page 165: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

165

Another way to give semantics to mathematical notation…

math notation

PL’s operational semantics

PL’s denotational semantics

?????

Page 166: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Modularity, compositionality

166

Page 167: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: Visual Group Theory 167

Page 168: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Dynamic Symbols in Illustrator

168

Page 169: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Interoperability

169

Page 170: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

how to design the common IR / substrate / host language?

group theory sub-DSL

permutation sub-DSL

other sub-DSLs

170

Page 171: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

1 2

3 4

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

Cayley diagram for K4 Permutation group

* 2

* 2

* 3 * 3

171

Cayley’s theorem

Page 172: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Extensibility

172

Page 173: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

…for each component of Penrose

Intermediate representations

Sampling and optimization

Substance View Style

… …A

Bp

A

B

p

A

B

p

173

SetASetBPointpInpA

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Dimension2CoordinatesNone

Page 174: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Penrose architecture

Intermediate representations

Sampling and optimization

Substance View Style

… …A

Bp

A

B

p

A

B

p

174

SetASetBPointpInpA

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Dimension2CoordinatesNone

Page 175: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Penrose architecture

Intermediate representations

Sampling and optimization

Substance View Style

… …A

Bp

A

B

p

A

B

p

175

SetASetBPointpInpA

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Dimension2CoordinatesNone

Page 176: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Penrose architecture

Intermediate representations

Sampling and optimization

Substance View Style

… …A

Bp

A

B

p

A

B

p

176

SetASetBPointpInpA

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Dimension2CoordinatesNone

Page 177: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Layout and runtime challenges

177

Page 178: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Let A and B be sets, and p be a point in A.”

Penrose architecture

Intermediate representations

Sampling and optimization

Substance View Style

… …A

Bp

A

B

p

A

B

p

178

SetASetBPointpInpA

ShapeSetCircleColorABlueColorBOrangeShapePointCircleLabelAllAuto

Dimension2CoordinatesNone

Page 179: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

80% 20%

Casual users Power users

179

Page 180: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

pinAAandBdonotintersectcurve2isnothomotopicto0Biscontainedinthepreimageoff

Constraints

180

Page 181: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

linked.layout=left_to_right

Style

181

Page 182: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

LabelAllAutoPositionAllAuto

Style

182

Page 183: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

importExpertise

183

Page 184: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

184

What’s the geometry? Where does the camera go, and what’s the focal length? Where’s the light/shadow? Do we want to include shading? Do we want a separate light for the shadow vs. the shading? Which “geometric” lines should be included? Always the silhouette. What about other contours? Which “combinatorial” lines should be included? E.g., grid lines. Should we automatically trace contours, or do it by hand? Are there any components that can be algorithmically generated? What’s the line thickness, for various classes of lines? What’s the line style for hidden lines? What’s the line style for partial lines? What’s the fill color for various regions? Should we use different colors/brightnesses to indicate lighting? Should we use gradients for shading? How should we color occluded regions? How dark is the shadow? What direction does the shadow gradient go? How do we label the figure? What gets labeled? Where do labels go? (How) should they occlude/be occluded by geometry?

Many common decisions for geometry

Slide borrowed from Keenan Crane

Page 185: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

185Slide borrowed from Keenan Crane

Page 186: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

186Slide borrowed from Keenan Crane

Page 187: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Objectives

187

Page 188: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Objectives

188

Page 189: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

layitoutlefttorightcentersets,butkeepthemawayfromeachotherpositionlabelsclosetotheirobjectbutfarfromothers’smartlinebreaks

Objectives

189

Page 190: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

layitoutlefttorightcentersets,butkeepthemawayfromeachotherpositionlabelsclosetotheirobjectbutfarfromothers’smartlinebreaks

Objectives

190

centerOrRadius(x1, x2, y1, y2) =p

(x1 � x2)2 + (y1 � y2)23

�(c1 + c2)((x1 � x2)2 + (y1 � y2)

2)

+c1c2p

(x1 � x2)2 + (y1 � y2)2)

Page 191: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Objectives

191Source: Keenan Crane

?

Page 192: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

192

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

Prodirect manipulation: center the points

want to center this point

Page 193: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

193

A

Rn

B

V

Rm

f

U

f(p)

f(V)

p

Page 194: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

194

A

Rn

B

V

Rm

f

U

f(p)

f(V)

StyleAllAutoShapeR^nSquareShapeR^mSquareColorR^nYellowColorR^mYellow

Substance Style

p

SetASetBSetR^nSetR^mSubsetAR^nSubsetBR^mMapfABOpenSetUSubsetUB

PointpInpAPointf(p)Inf(p)UOpenSetVpSubsetVAInpVSetf(V)Subsetf(V)UInf(p)f(V)runtime

infers code

changes!

now centered at p

Page 195: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

195

Page 196: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

importExpertise

196

Page 197: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Our broader vision

197

Page 198: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Automatically parse and visualize mathematics

198

Page 199: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

199

Page 200: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

200

Page 201: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

201

A

Rn

B

V

Rm

p

f

U

f(p)

f(V)

A

f -1(U)

Rn

B

U

Rm

f

Page 202: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: https://www.reddit.com/r/math/comments/5i845f/mathpix_a_phonecamera_powered_3d_grapher 202

Page 203: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Next time you want to illustrate your paper or talk…

203

Page 204: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

204

…reach for Penrose!

Page 205: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Gallery

205

Page 206: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

206

Source: Visual Group Theory

illustrating a theorem by example

Page 207: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

207

Source: Visual Group Theory

illustrating an algorithm

Page 208: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: https://arxiv.org/pdf/1610.06204.pdf 208

illustrating an algorithm

Page 209: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

209

Source: A first course in geometric topology

more geometric diagrams

Page 210: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: Keenan Crane 210

geometric diagram described by notation

Page 211: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

211

Source: A first course in geometric topology

illustrating maps (functions) between objects

Page 212: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

212Source: Keenan Crane

illustrating maps (functions) between objects

Page 213: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: Algebraic Topology Hatcher 213

function composition

Page 214: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: “Understanding LSTM Networks,” Chris Olah 214

circuit-type diagrams for equations

Page 215: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: NIST 800-90A 215

circuit-type diagrams for equations

Page 216: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Source: Graphical Linear Algebra 216

math done via diagrams

Page 217: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

217

Source: Visual Group Theory

sometimes we don’t know what we want to draw…

Page 218: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

“Testimonials”

218

(from real people!)

Page 219: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

I would certainly be an eager user of such a system.

The current state of the art for my workflow is a lot of copy-pasting and tweaking of TikZ code.

Edward Morehouse category theorist

219

Page 220: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

This looks fabulous! (…)

I'd love to use it to rewrite Group Explorer for the web!

Nathan Carter author of Visual Group Theory

220

Page 221: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

Thanks! Questions?

221

Page 222: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

FAQ

222

Page 223: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

How will you evaluate the effectiveness of Penrose?

How does Penrose compare to Asymptote, TikZ, Ipe, etc.?

How does Penrose compare to Mathematica, Wolfram Alpha, GeoGebra, graphing calculators, etc.?

What other domains of math might you target?

How will Penrose deal with continuous domains?

How much of the system have you actually implemented so far?

Do you plan to put Penrose on the web, or integrate it with TeX?

What rendering backend will you use?

Have you considered <related work>?

Can I use Penrose right now? No? Then when??

223

Page 224: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

How much about mathematics does Penrose need to “know”?

Have you considered hooking it up to a system for formal reasoning, such as a theorem prover (e.g. Coq)?

What about programs that represent invalid, incorrect, or inconsistent diagrams?

How can Penrose enable counterfactual or nonconstructive reasoning?

(Comment: “I found the anti-example of continuity more helpful than the illustrations of the definition.”)

How will you deal with quantifiers (e.g. for all, there exists) and their nesting and ordering?

How will you separate Substance from Style? I don’t find HTML/CSS to be very convincing.

Should all branches of mathematics be illustrated? Some seem more amenable to illustration than others.

How easy would it be for you to extend Penrose to do interactive diagrams, animated diagrams, sequential diagrams, algorithmic diagrams, or parameterized diagrams? What about illustrating theorems and proofs?

224

Page 225: Designing extensible, domain-specific languages for … · 2017. 2. 11. · Designing extensible, domain-specific languages for mathematical diagrams Katherine Ye with Keenan Crane

I don’t know!

225