|Proposed by Santiago Bragagnolo (profile, biography) Don't forget to submit this proposal to official Google Melange site too!
How will I do that project
Well, I am currently analyzing the product of the thesis on which the project is based.
First at all i need to enhance the inference allowing complex expressions (there´s no use in a call graph of simple expressions).
Then, im going to integrate every step of execution-emulation with a meta data structure (probably magritte3).
Finally, with a call graph ensambled, the next step is make a graph-configurable-visitor that collect information based in a given criteria.
What methodologies will I use
Agile methodologies mixed with tdd, week-sprints defined by functionality, tests based on funtionality previously defined, functionality integration, loop.
Suggested timeline and milestones
5 weeks iterating with inference enhancement, and meta-data integration
1 weeks building a power visitor
2 week code enhancement and bug fixing.
Where I see the risks
Concrete type inference is based in runtime-emulation. So get complex expressions will be a challenge
How the results will look like
A compiler directive that returns, for a given expression, a queriable call-graph, giving, for examble, all the bytecode that need to be executed. All the variables that will be potentialy modified, etc.