1 / 21

Comment Extractor

Comment Extractor. Ethan Chan Tianqiu Tem Wang Juliana Wong. Introduction (1). What do high level software tools provide? abstract level understanding specific knowledge focus After using these tools, programmers eventually have to touch source code. Abstract Level. Text Level.

halee-dean
Download Presentation

Comment Extractor

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Comment Extractor Ethan Chan Tianqiu Tem Wang Juliana Wong

  2. Introduction (1) • What do high level software tools provide? • abstract level understanding • specific knowledge • focus • After using these tools, programmers eventually have to touch source code Abstract Level Text Level

  3. Introduction (2) • Comment • explanatory text embedded in program source • helps human readers understand program source code • the most useful thing at code level

  4. Motivation (1) • Comments are localized Expression of interest Expression declaration Comments associated with expression The same expression used elsewhere • Comments relating to the expression are found only in one place

  5. Motivation (2) Searching for comments • is a tedious job • interrupts original work flow

  6. Motivation (3) • Sometimes Expression of interest is far away Possibly a gap of a lot of files! Expression of interest Expression Declaration Comments associated with Expression

  7. Motivation (4) • Examples: • Grep • too many incorrect results • Javadoc • format must be specific • needs to know belonging class • More in DEMO later on…

  8. Claim • Programmers shouldn’t • stop the workflow • do any extra work to find comments. • Need a tool • deals with these problems • extracts comments automatically.

  9. Solution • Comment Extractor • A plug-in for JEdit (an open source java editor) • Extracts comments from 4 types of CO • Returns comments by Intelli-Selection • user’s selection • cursor’s location

  10. What the icons mean Variable comment Type comment Java predefined type comment Function comment No comment

  11. This is the class (for members) or return type (for methods) This is the first level. Each level always shows the respective type and variable comments This is the second level, showing comments relating to function openPrintWriter() The selected express that is of interest This is the detailed view pane for the selected comment above Allow going back and forth with various comment trees Freezes comment extraction DEMO – Introduction to the GUI

  12. DEMO

  13. DEMO – Complex process finding comments from Inherited Classes • Need to knowwhich classhas isInt()’scomment Type isInt() isReal() BasicType isInt() isReal() isInt() PointerType isReal() …. isInt() IntType isReal() BooleanType isInt() isReal() ….

  14. DEMO – Finding out the usual way • Where is m? • 170 lines up, we find it’s declaration • Where is Machine class? • 1 out of 61 files, we find it’s declaration • Where is method emitLoad? • 200 lines down, we find two overloaded declarations • Which emitLoad method is correct? • Need to know what parameter (sto, tmp) types are! • Give up?

  15. DEMO – Finding out the JavaDoc way • Where is m? • 170 lines up, we find it’s declaration • Open JavaDoc on Machine class • Find emitLoad documentation • Need to know what parameter (sto, tmp) types are! • Not all comments are JavaDoc style, so are not seen!

  16. DEMO – Finding out the grep way • Assuming there are few uses of the text “emitLoad”, where is emitLoad? • Need to weed out emitLoad declarations • Much faster, only because not repeated declaration • Still need to know which overloaded method • (still need to find out sto and tmp!) • Still need to open files and read comments • Hard to go back to original position if not created in separate process

  17. DEMO – Finding out the Comment Extractor way

  18. Limitations • This tool won’t be helpful if • No comments • Bad comments • Comments not associated with a CO • a plugin currently only for JEdit • works only for Java While loop

  19. Lessons Learned (1) • Didn’t have CE to develop CE • difficult to understand JEdit’s massive source code • Unintentional benefits • i.e. warping files

  20. Lessons Learned (2) • Modular design allowed easy integration of unanticipated changes • User Interaction (GUI) • Functionality JEdit Comment Extractor Comment Hunter Location Searcher GUI JEdit plugin interface

  21. Any comments? (no pun intended)We’ll help you extract it! Comment Extractor

More Related