Inferring Hierarchical Motifs from Execution Traces Saba Alimadadi , - - PowerPoint PPT Presentation

inferring hierarchical motifs from execution traces
SMART_READER_LITE
LIVE PREVIEW

Inferring Hierarchical Motifs from Execution Traces Saba Alimadadi , - - PowerPoint PPT Presentation

Inferring Hierarchical Motifs from Execution Traces Saba Alimadadi , Ali Mesbah, Karthik Pattabiraman saba@northeastern.edu All truths are easy to understand once they are discovered; the point is to discover them. Galileo Galilei Search


slide-1
SLIDE 1

Inferring Hierarchical Motifs from Execution Traces

Saba Alimadadi, Ali Mesbah, Karthik Pattabiraman

saba@northeastern.edu

slide-2
SLIDE 2

All truths are easy to understand once they are discovered; the point is to discover them.

— Galileo Galilei

slide-3
SLIDE 3

Search Relate Collect Model

[Ko et al. ’06], [Murphy et al. ’95]

slide-4
SLIDE 4

Execution Traces: Complex and Overwhelming

slide-5
SLIDE 5

fn fn fn fn fn fn fn fn fn fn fn fn

recurring patterns?

slide-6
SLIDE 6

fn fn fn fn fn fn fn fn fn fn fn fn

previously unknown

pattern pattern

slide-7
SLIDE 7

fn fn fn fn fn fn fn fn fn fn fn fn

tolerant of small changes

pattern pattern pattern pattern

slide-8
SLIDE 8

fn fn fn fn fn fn fn fn fn fn fn fn

hierarchical

pattern pattern pattern pattern pattern

slide-9
SLIDE 9

Inspired by bio-informatics

Motifs of program execution

Smith-Waterman [1981] BLAST [1990]

slide-10
SLIDE 10

JS

17.5 35 52.5 70 85000 170000 255000 340000

Most Popular Programming Language

JavaScript Java

active repositories

JavaScript Java

popularity %

slide-11
SLIDE 11

function validateEmail () { // do stuff } function checkAddress () { // do more stuff }

Select one

Student Email: Address: Occupation: Submit

window foo validateEmail checkAddress bar baz

slide-12
SLIDE 12

Select one

Student Email: Address: Occupation: Submit

validateEmail() checkAddress()

  • ccupation()

submit()

slide-13
SLIDE 13

Select one

Student Email: Address: Occupation: Submit

Select one

Degree:

studentForm() validateEmail() checkAddress()

  • ccupation()

submit()

slide-14
SLIDE 14

Student

Email: Address: Occupation:

Submit

Degree:

validateEmail() checkAddress()

  • ccupation()

studentForm() submit()

slide-15
SLIDE 15

Student

Email: Address: Occupation:

Submit

Degree:

validateEmail() checkAddress()

  • ccupation()

studentForm() submit()

bar() change() transition() grouped() stacked() index.html:11() showPopup() foo() baz() foo() bar() foo() bar() baz() validateEmail() checkAddress()

  • ccupation()

submit()

Database

slide-16
SLIDE 16

Student

Email: Address: Occupation:

Submit

Degree:

validateEmail() checkAddress()

  • ccupation()

studentForm() submit()

bar() change() transition() grouped() stacked() index.html:11() showPopup() foo() baz() foo() bar() foo() bar() baz() validateEmail() checkAddress()

  • ccupation()

submit()

Database Query

baz() foo() validateEmail() checkAddress()

  • ccupation()

studentForm() submit() change() transition()

BLAST [Altschul et al. 1990]

slide-17
SLIDE 17

Student

Email: Address: Occupation:

Submit

Degree:

validateEmail() checkAddress()

  • ccupation()

studentForm() submit()

bar() change() transition() grouped() stacked() index.html:11() showPopup() foo() baz() foo() bar() foo() bar() baz() validateEmail() checkAddress()

  • ccupation()

submit()

Database Query

baz() foo() validateEmail() checkAddress()

  • ccupation()

studentForm() submit() change() transition()

slide-18
SLIDE 18

bar() change() transition() grouped() stacked() index.html:11() showPopup() foo() baz() foo() bar() foo() bar() baz() validateEmail() checkAddress()

  • ccupation()

submit()

Database Query

baz() foo() validateEmail() checkAddress()

  • ccupation()

studentForm() submit() change() transition()

2 2 4 4 6 2 6 4 4

validateEmail checkAddress

  • ccupation

submit submit studentForm

  • ccupation

checkAddress validateEmail

Smith-Waterman [Smith & Waterman 1981]

slide-19
SLIDE 19

bar() change() transition() grouped() stacked() index.html:11() showPopup() foo() baz() foo() bar() foo() bar() baz() validateEmail() checkAddress()

  • ccupation()

submit()

Database Query

baz() foo() validateEmail() checkAddress()

  • ccupation()

studentForm() submit() change() transition()

2 2 4 4 6 2 6 4 4

validateEmail checkAddress

  • ccupation

submit submit studentForm

  • ccupation

checkAddress validateEmail

slide-20
SLIDE 20

bar() change() transition() grouped() stacked() index.html:11() showPopup() foo() baz() foo() bar() foo() bar() baz() validateEmail() checkAddress()

  • ccupation()

submit()

Database Query

baz() foo() validateEmail() checkAddress()

  • ccupation()

studentForm() submit() change() transition()

2 2 4 4 6 2 6 4 4

validateEmail checkAddress

  • ccupation

submit submit studentForm

  • ccupation

checkAddress validateEmail

slide-21
SLIDE 21

bar() change() transition() grouped() stacked() index.html:11() showPopup() foo() baz() foo() bar() foo() bar() baz() validateEmail() checkAddress()

  • ccupation()

submit()

Database Query

baz() foo() validateEmail() checkAddress()

  • ccupation()

studentForm() submit() change() transition()

validateEmail checkAddress

  • ccupation

submit submit studentForm

  • ccupation

checkAddress validateEmail validateEmail checkAddress

  • ccupation

ABSTRACT submit

Motif

slide-22
SLIDE 22

bar() change() transition() grouped() stacked() index.html:11() showPopup() foo() baz() foo() bar() foo() bar() baz() validateEmail() checkAddress()

  • ccupation()

submit()

Database Query

baz() foo() validateEmail() checkAddress()

  • ccupation()

studentForm() submit() change() transition()

validateEmail checkAddress

  • ccupation

submit submit studentForm

  • ccupation

checkAddress validateEmail validateEmail checkAddress

  • ccupation

ABSTRACT submit

Motif

abstraction

Motif Motif validateEmail checkAddress

  • ccupation

studentForm submit

hierarchy

Abstract

slide-23
SLIDE 23

https://github.com/saltlab/sabalan

A B E D C

DB Motifs

Sabalan

slide-24
SLIDE 24

Does using Sabalan improve performance of developers?

slide-25
SLIDE 25

Controlled Experiment

Tasks: common comprehension activities 14 participants Control: tool Measure: performance

slide-26
SLIDE 26

Fast is fine, but accuracy is everything.

54

accuracy

pp

more

Accuracy (%)

T1.a T1.b T2.a T2.b T3 Total 25 50 75 100

Sabalan Other

slide-27
SLIDE 27