WEEK 9
Wednesday: I have spent the past few days immersed in implementation details. delete_call_site and propagate_update are no longer code fragments but viable skeletons. Of course, some aspects have not yet been implemented, but all of the necessary structures are in place. delete_call_site has moved to MetaCallGraphImpl5 (instead of being a static method in the main program that takes a call graph parameter). Right now, I'm working on getting a valid set of added reaching types by examining the call site's predecessors. The problem lies in somehow getting to types from a set of Temps. I am also unsure if Quad.prev() actually returns the statements I desire. Constant testing is in progress.
Friday: Tests for reaching definitions seem to be working; the reachingDefs method returns a valid list based on the body of the analyzed method, and MCGExactTemps have been found for the reaching definitions of each Temp used in a CALL quad (a call site). Of course, this isn't what we want for add_types_after, but it's an important step. If preexisting MCGExactTemps corresponding to the Temp storing the return value at a given call site can be found "within" the predecessors of this call site, we've accomplished a major goal. The reason these MCGExactTemps must already be in place is that their GenTypes were computed during dependency detection and type inference. We don't perform this analysis during delete_call_site and thus must depend on existing data structures.
I also worked on my website a bit and spent time reading past DMP participants' final reports to get ideas for my own, which I will have to finish next week. I wish I had more to show for my time and effort, but I have learned a great deal, and I'll be working on the implementation until the end of my mentorship.
While waiting for executions to run, I began to learn JavaScript from a WebMonkey tutorial. I didn't want to make my website too busy looking, so I settled for some image swaps that give the appearance of buttons being pressed and released.
WEEK 10
Although I was able to run several final tests and try some new ideas regarding the add types, the focus of this week was on tying up loose ends. I wrote my final report and worked on a readme specifying how to run my main program (/Harpoon/Code/Main/DelCallSite) from the command line, a status report for Amie, and a graphical representation of control flow in the MetaCallGraphImpl5 constructor. I uploaded the final report to my website and made some last minute changes to its appearance and content. Writing so much makes the days seem rather long! I'm excited to be going home, but I think I'm really going to miss the people, the lab, and the project. Amie and I plan to keep in touch, and if I have free time at school this coming semester, I'd like to try to make the implementation fully functional. I'm disappointed that I wasn't able to accomplish all of my goals, but I have lots of ideas for the future. This was a wonderful summer!
Home |
DMP |
Project |
Journal |
Contact
Week 1 | Week 2 |
Week 3 | Week 4 |
Week 5 | Week 6 |
Week 7 | Week 8 |
Week 9 | Week 10
©2002, Katie Heise