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