Hadn't seen that project before, pretty cool.

My 2 cents, in terms of clojure compiler-related stuff:

Reimplementing the persistent datastructures in terms of clojure
protocols seems like a high-leverage thing to do, and the basis of a
lot of things.

Before this happens, you can't have a real clojure-in-clojure
implementation. Once you have it, going all the way seems more
feasible.

Independent of the clojure-in-clojure implementation, it would also
give immediate benefit to other current and future clojure
implementations such as clojurescript.

Clojure protocols were basically designed with this use case in mind,
so it would be pretty cool to have the idea taken to fruition.


On Wed, Mar 21, 2012 at 11:08 AM, Robert Pfeiffer
<pfeiffer.rob...@googlemail.com> wrote:
> Hello,
>
> I am a student and would like to participate in the GSOC program. I would
> like some feedback on these project ideas:
>
> * Idea 1: A Clojure compiler based on fonc/cola
> The CoLa Framework(http://piumarta.com/software/cola/) seems like a
> promising basis for a native Clojure compiler. I have previously tinkered
> with a simple implementation of Java based on
> CoLa(http://www.hpi.uni-potsdam.de/hirschfeld/projects/delmdsoc/index.html).
> The potion language, which is currently maintained by Mr. Fogus is also
> based on some cola code.
>
> ** Brief Explanation:
> Write a Clojure-compiler for cola. The compiler should generate native code,
> but allow interactive/incremental development. Maybe write a C FFI.
>
> ** Expected Results:
> -the persistent Clojure data structures in cola
> -a Clojure reader in cola
> -a compiler from Clojure data structures to cola
>
> The cola compiler should pick up from there and do the native code
> generation.
>
> ** Knowledge Prerequisite:
> CoLa or alternatively C, Scheme and smalltalk. Parsing and compiler
> construction.
>
> ** Skill Level:
> Can somebody with cola experience comment on the feasibility of this? It
> seems doable to me, but I do not know if the time is enough or whether there
> are any mentors familiar with cola.
>
>
> * Idea 2: Forward- and Reverse-mode autodiff
> There are currently 3 ways to generate a program for function that computes
> the derivative of another function:
> -Symbolic: Take the source code of a program and generate the source code of
> the program that computes the derivative.
> -Numeric: Take a small epsilon and compute (f(x+epsilon)-f(x))/epsilon
> -Automatic: Trace the execution of a program, replace the calculations with
> calculations for the derivative.
>
> Numeric differentiation is inexact, and Symbolic differentiation is tricky
> because of unpredictable control flow.
>
> ** Brief Explanation:
> An autodiff library for clojure would be very valuable for machine learning
> and optimisation. At first we should implement forward-mode autodiff in
> Clojure, then reverse-mode autodiff. The implementation should be composable
> and avoid this bug: http://eprints.nuim.ie/566/1/Perturbation.pdf. Maybe it
> should be integrated with Incanter, so we can compute the derivatives of
> matrix operations quickly.
>
> As a proof-of-concept, learning in SVMs or neural networks would be nice,
> because reverse mode autodiff is a generalisation of backprop.
>
> ** Expected Results:
> A library with differentiation- and gradient- operators.
>
> ** Knowledge Prerequisite:
> Some calculus.
>
> ** Skill level:
> Easy to Medium.
>
>
> Robert Pfeiffer
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to