harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Gong <daniel.gong.fu...@gmail.com>
Subject [GSoC] My proposal
Date Mon, 30 Mar 2009 09:01:59 GMT
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~



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.


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message