Are you interested in working for three months at Microsoft Research, Cambridge, on a project related to F#?  MSR Cambridge now takes interns year-round, not just in the summer months. We are keen to attract motivated and well-qualified folk to work with us on our research, and on improving or developing F# and its related tools and libraries.

If you or one of your students is interested, you can find some more details here. To clarify, we now accept internship applications AT ANY TIME.  Our next empty slot is the Oct-Dec period, but you would need to get cracking with an application as we would need to set things in motion almost immediately.  You are also welcome to apply for some later period - we would expect a cutoff of around Nov 15 for the Jan-Mar '07 slot.

Some past and ongoing projects have included:

  • Using F# and Abstract IL to implement NGEN-related optimizations by static analysis and IL-to-IL rewriting (Dominic Cooney)
  • Formulating a type system for statically checking initialization soundness of recursive bindings in strict languages (Paul Govereau)
  • Desigining and implementing "F# Active Patterns", a variant of Phil Wadler's "Views" adapted to F#. (Greg Neverov)

Some possible projects include:

  • Continue to develop F# as a tool for the machine learning community.  For example, you might attempt to apply automatic differentiation techniques to F# quotations and then use .NET runtime code generation to produce a user-friendly powerful general and efficient treatment of automatic and/or symbolic differentiation in the context of .NET.  Alternatively, you could work on some other joint project between the F# and machine learning groups at MSR Cambridge.
  • Working on planned design extensions such as a comprehension notation or mixins.
  • Further designing and developing support for LINQ in F#
  • Formalizing and robustly specifying some aspects of the existing F# design (using both informal and formal techniques).
  • Developing F# connections to .NET numerical and visualization components, and/or designing and developing alternatives to these components where necessary.

All projects would benefit from or require excellent F# or OCaml programming skills, a good working knowledge of .NET, strong mathematical skills and a sense of pragmatism in the application of formal techniques.

There are lots of other fantastic things going on at MSR Cambridge in both programming language research (Haskell, optimization, foundational theory, security ...), and stuff beyond that (machine learning, systems and networks...); see http://research.microsoft.com/aboutmsr/labs/cambridge 

[ Nb. The above text is adopted from a post sent by Simon Peyton Jones to the Haskell list - thanks Simon! ]