This is the mail archive of the
kawa@sourceware.org
mailing list for the Kawa project.
Re: Google Summer of Code
- From: Charles Turner <chturne at gmail dot com>
- To: kawa at sourceware dot org
- Date: Wed, 05 Mar 2014 10:15:50 +0000
- Subject: Re: Google Summer of Code
- Authentication-results: sourceware.org; auth=none
- References: <20140305094242 dot 349492d0 at debian-andrebask>
Hi Andrea,
On 05/03/14 08:42, Andrea Bernardini wrote:
I have only basic knowledge in formal languages, compilers and low
level architectures, and no experience in compilers development, so I
need to reason about the feasibility of the project.
Depending on which project you select, compiler knowledge required
varies. But again, the more you know, the better! The project you
enquired about could have an element of code generation to it, and a
basic understanding of computer architecture won't hurt in understanding
how to use it. You can look at the methods in gnu.bytecode.CodeAttr to
get a feel for the level abstraction we're working with in Kawa. You
certainly don't need to know any micro-architectural details, if that's
what you meant by "low-level", the JVM takes care of that. :-)
As far as formal languages go, perhaps the only things I can imagine you
coming across are regular (sic) expressions and grammars, but again,
nothing spectacular.
Optimize switches (case)
Implement SwitchExp as a new class extending Expression, and compile it
using the existing gnu.bytecode.SwitchState. Use it to optimize
Schemeâs case form. This might be better done without a new Expression,
but instead using a special Procedure with custom âvalidationâ and
code-generation.
Could it be a reasonable project for a student with few experience in
compilers?
I think a motivated student could accomplish this task, even without
experience with compliers, as long as they're interested in the topic.
Is there an other project that could be a good starting point?
It's hard to suggest projects since we're not sure what your personal
strengths and interests are. To be honest, all the projects would be
good starting points for the motivated student.
My advice is to pick something that interests you, and dig around the
code base trying to get a better understanding of what that particular
project might involve. Don't worry if you get lost, feel free to ask
questions, someone here will be able to help you!
Kind regards,
Charles.