Thanks very much. Do you have some suggestion? :-) Daniel Gong
2009/3/30 Alexei Fedotov <[email protected]> > I like this pretty nice proposal. It helped me to understand what the > task was about. :-) > > > > On Mon, Mar 30, 2009 at 1:01 PM, Daniel Gong > <[email protected]> wrote: > > Hi all, > > I'm a postgraduate student from Fudan University, Shanghai, China. > > This is my first time joining GSoC and I was not quite clear that I > > should exchange my ideas with possible mentors. I've submitted my > proposal > > today. It's lucky that I can still modify it. > > Here is my proposal, any criticism and suggestions are welcome~ > > > > ===================================================== > > > > *Abstract:* > > > > The main idea to deal with the subject is to collect infomation from the > > input first and then generate smallest JRE according to the infomation > > collected and harmony classes dependences. > > > > *Detailed Description:* > > > > The implementation of the tool can be divided into 4 parts: > > > > 1. Infomation Collector. Automatic lexcial tool such as JLex may be > used > > to analysis the input code and collect infomation including which > classes in > > JRE does the project depend on. > > 2. Data structure design. Both project-jre class dependence and jre > inner > > class dependence should be represented in an uniform way. > > 3. Class Lister. An algorithm should be designed to compute with the > > dependence and list out the classes needed in the smallest JRE. > > 4. JRE Builder. Build a JRE according to the class list. > > > > *Initial* *Algorithm Design* > > > > Use a, b to represent two classes, and <a, b> to represent a relation > > between a & b, that is, a depends on b, in other words, b is refered in > > source code of a. > > > > 1. Given a project with its class set P, let set S = P and set M = > empty. > > > > 2. For each class c in S, search for dependence <c, *>, and for each d > > that <c, d> exists and d is not in M, put d in S. After searching for > <c, > > *>, put c in M and delete it from S. > > 3. Loop step 2 until S is empty, return M - P. > > > > Here a project's class set includes its customized classes and classes in > > other packages that the project may link to. > > > > *Possible problems to solve* > > > > To collect the infomation, just reading the "import" part of the code is > not > > a precise strategy. A lexicial scan of the code from begin to end is a > must. > > Automatic lexcial tools can be used to solve the problem. > > > > JRE is not just a simple collection of classes needed. Getting familiar > with > > the structure of Harmony JRE is a must. > > > > *Draft Timeline* > > > > - Week 1-2 Complete the design of data structure and the algorithm; > > - Week 3-4 Implement the module of infomation collector; > > - Week 5-6 Implement the algorithm to list out the classes; > > - Week 7-8 Implement the JRE builder; > > - Week 9 Debug the whole module and make necessary modifications > > to successfully complete the subject. > > > > *Additional Information:* > > > > I've been learning and using Java since 3 years ago. Although my > > experience of Harmony is not that vast, my knowledge in programming, > > software architecture, compiler building and algorithm can help me to > learn > > fast and handle the problem. > > > > I'm 23 years old, living in Shanghai, China, attending Fudan University. > > > > ===================================================== > > > > > > -- > With best regards / с наилучшими пожеланиями, > Alexei Fedotov / Алексей Федотов, > http://www.telecom-express.ru/ > http://people.apache.org/~aaf/ >
