Making Sense of Online Code Snippets
description
Transcript of Making Sense of Online Code Snippets
![Page 1: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/1.jpg)
Making Sense of Online Code SnippetsSiddharth Subramanian, Reid HolmesUniversity of Waterloo
![Page 2: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/2.jpg)
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
![Page 3: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/3.jpg)
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
![Page 4: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/4.jpg)
Code Search Challenges
![Page 5: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/5.jpg)
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
![Page 6: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/6.jpg)
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
![Page 7: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/7.jpg)
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
![Page 8: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/8.jpg)
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
![Page 9: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/9.jpg)
Approach
![Page 10: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/10.jpg)
Approach
[Parnin et. al., Georgia Tech, Tech. Rep., 2012]
![Page 11: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/11.jpg)
Approach
SnipParse
1
Code Snippet Parser
![Page 12: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/12.jpg)
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
![Page 13: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/13.jpg)
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
![Page 14: Making Sense of Online Code Snippets](https://reader034.fdocuments.net/reader034/viewer/2022051323/54b774254a7959df648b45e0/html5/thumbnails/14.jpg)
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