harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Xiao-Feng Li <xiaofeng...@gmail.com>
Subject Re: [GSoC] My proposal
Date Tue, 31 Mar 2009 04:17:33 GMT
One another thing is the consideration of dynamic class loading.

Thanks,
xiaofeng

On Mon, Mar 30, 2009 at 11:57 PM, Jimmy,Jing Lv <firepure@gmail.com> wrote:
> Wow the plan's excellent Daniel!
>
> And an advanced question, as you know, the jre does not only have classes,
> but also resources files, property files and etc. So do you have any ideas
> on select them and merge into the customized JRE? :)
>
> 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.
>>
>> =====================================================
>>
>
>
>
> --
>
> Best Regards!
>
> Jimmy, Jing Lv
> China Software Development Lab, IBM
>



-- 
http://people.apache.org/~xli

Mime
View raw message