harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Suman <suman.karum...@gmail.com>
Subject Re: [GSoC] My proposal
Date Tue, 31 Mar 2009 16:44:28 GMT
Hi Daniel,


On Tue, Mar 31, 2009 at 12:30 PM, Daniel Gong
<daniel.gong.fudan@gmail.com> wrote:
> By saying dynamic class loading, do you mean reflection based class loading
> or just class loader way?
> For the former one, I don't think the dynamic trace strategy is right. In my
> opinion, to do dynamic tracing we need to examine all possible running path
> of the program. It is unrealistic, especially when the program must interact
> with users.
> The latter one may have the same problem as the former one, I guess.
> In fact, there is a condition that the class name string is from the user
> input. If so, I think we can ignore the class selector and offer the whole
> jre. Except that, it is always possible to parse the code and generate the
> dynamic loaded class name, although I still don't have a structured
> algorithm...
> Hehe, I find my words a bit orderless...

If you restrict yourself to standard Java classes, would you achieve
worse results? Or If you don't minimize application jar, would you
loose a lot of benefit of your work? If most of your savings are from
standard java jar files, then may be you can punt the dynamic
analysis.

-S-
>
> Daniel
> On Tue, Mar 31, 2009 at 12:17 PM, Xiao-Feng Li <xiaofeng.li@gmail.com>wrote:
>
>> 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