harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jimmy,Jing Lv" <firep...@gmail.com>
Subject Re: [GSoC] My proposal
Date Mon, 30 Mar 2009 15:57:56 GMT
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

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