harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jin Mingjian <jin....@gmail.com>
Subject Re: [GSoC] My proposal
Date Wed, 01 Apr 2009 06:10:03 GMT
it is brave to submit such proposal:) The dependencies are complex at
real world. I have thought to submit this kind of gsoc proposal ago:)
.  But I am afraid it will become a toy:) For some practices in this
field, the shrinked size is limited, espeically for the more and more
cheap storage. But I think it deserves to encourage students to try.

2 problems,

Class.forName() like things,
3rd part library jars(seem no problem?), resources, jni-dll, or
thers(mentioned by Jimmy)
others?

dynamics seem better and easier than static anaylsis.




2009/3/30 Daniel Gong <daniel.gong.fudan@gmail.com>:
> 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.
>
> =====================================================
>

Mime
View raw message