Upload
siddhukrs
View
1.210
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Presentation for MSR '13, San Francisco.
Citation preview
Making Sense of Online Code SnippetsSiddharth Subramanian, Reid HolmesUniversity of Waterloo
2
Indexes millions of random code snippets from the internet
Public Code on
the Internet
Traditional Code Search
crawler
MAKING SENSE OF ONLINE CODE SNIPPETS - SIDDHARTH SUBRAMANIAN, REID HOLMES MSR '13
3
Curated Code Search
Indexes millions of random code snippets from the internet
Indexes a limited set of good quality code snippets
Public Code on
the Internet
Traditional Code Search
crawler
MAKING SENSE OF ONLINE CODE SNIPPETS - SIDDHARTH SUBRAMANIAN, REID HOLMES MSR '13
crawler
Code Search Challenges
5
Code Search Challenges
chrono -Type unknown!run()- 20 different methods
java.util.TimerTask.run() android.os.HandlerThread.run() …
start()- 26 different methods android.media.MediaPlayer.start() android.animation.Animator.start() …
MAKING SENSE OF ONLINE CODE SNIPPETS - SIDDHARTH SUBRAMANIAN, REID HOLMES MSR '13
6
Code Search ChallengesPROBLEMS WITH LEXICAL SEARCH
Code is treated as plain-text
Underlying API linkage is lost
Method name collisions
MAKING SENSE OF ONLINE CODE SNIPPETS - SIDDHARTH SUBRAMANIAN, REID HOLMES MSR '13
7
Code Search Challenges
chrono -android.widget.Chronometerrun()-java.lang.Runnable.run()
start()- android.widget.Chronometer.start()
MAKING SENSE OF ONLINE CODE SNIPPETS - SIDDHARTH SUBRAMANIAN, REID HOLMES MSR '13
8
Code Search ChallengesPROBLEMS WITH LEXICAL SEARCH PROBLEMS WITH PARSING CODE
Code snippets are often incomplete Missing class declarations Missing method declarations Incomplete code fragments
Code is treated as plain-text
Underlying API linkage is lost
Method name collisions
MAKING SENSE OF ONLINE CODE SNIPPETS - SIDDHARTH SUBRAMANIAN, REID HOLMES MSR '13
Approach
Approach
[Parnin et. al., Georgia Tech, Tech. Rep., 2012]
Approach
SnipParse
1
Code Snippet Parser
12
Approach
MAKING SENSE OF ONLINE CODE SNIPPETS - SIDDHARTH SUBRAMANIAN, REID HOLMES MSR '13
SnipParse
Curated Snippet Repository
• Android Types• Android Methods
1
Code Snippet Parser
13
Approach
MAKING SENSE OF ONLINE CODE SNIPPETS - SIDDHARTH SUBRAMANIAN, REID HOLMES MSR '13
SnipParse
Curated Snippet Repository
• Android Types• Android Methods
1
CodeHunter
2
Code Search Web InterfaceCode Snippet Parser
14
Summary Enabling Curated Search
http://awenda.cs.uwaterloo.ca/snippet/
https://cs.uwaterloo.ca/~rtholmes/papers/msr_2013_subramanian.pdf
MAKING SENSE OF ONLINE CODE SNIPPETS - SIDDHARTH SUBRAMANIAN, REID HOLMES MSR '13
SnipParse
Curated Snippet Repository
• Android Types• Android Methods
1
CodeHunter
Code Search Web InterfaceCode Snippet Parser