Changes between Version 12 and Version 13 of Internships


Ignore:
Timestamp:
Jan 16, 2008 2:34:36 PM (7 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Internships

    v12 v13  
    33[http://research.microsoft.com/aboutmsr/labs/cambridge/ Microsoft Research Cambridge] now runs a year-round [http://research.microsoft.com/aboutmsr/jobs/internships/ internship programme].  You can apply for an internship slot in any area covered by the lab, but Simon and I are of course keen to attract strong applications from people interested in functional programming, Haskell, and GHC. 
    44 
    5 The next available slots will be for Summer 2008 or thereabouts. 
     5The next available slots will be for Summer 2008 or thereabouts.  Deadline for application is end Feb; decisions in March. 
    66 
    77== What is an internship? == 
     
    2828  * Krasimir Angelov completed and released Visual Haskell.  
    2929 
     30== Current projects == 
     31 
    3032Here is a list of some possible future projects we have in mind: 
    3133 
    32   * Update/improve [http://www.haskell.org/visualhaskell Visual Haskell] 
     34=== Programming environment and tools === 
     35 
     36  * Update/improve [http://www.haskell.org/visualhaskell Visual Haskell] to use the (free) [http://msdn2.microsoft.com/en-us/vsx2008/products/bb933751.aspx Visual Studio Shell]. 
     37 
    3338  * Work on the [http://www.haskell.org/haskellwiki/Ghci/Debugger GHCi debugger] 
    34   * Refactor GHC's code generator into two phases: (a) generate {{{C--}}} with native procedure calls, 
    35     (b) perform CPS conversion, as a {{{C--}}} to {{{C--}}} conversion, to generate code ready  
    36     for the existing native code generators. 
    37   * Add views to Haskell.  [http://hackage.haskell.org/trac/haskell-prime/wiki/Views] 
    38   * Improve code generation; see suggestions in [wiki:BackEndNotes] 
    39   * Implement [http://repetae.net/john/recent/out/classalias.html John Meacham's class alias proposal] 
    40   * Implement semi-tagging or other optimisation improvements in GHC 
     39 
     40  * Make GHC work with [http://research.sun.com/projects/gcspy/ GCSpy], a generic heap visualiser tool. 
     41 
     42=== Turning GHC into a platform === 
     43 
     44Projects aimed at making GHC into a user-extensible plug-in platform, and less of a monolithic compiler. 
     45  * '''Allow much finer and more modular control over the way in which rewrite rules and inlining directives are ordered'''.  See this [http://www.haskell.org/pipermail/haskell-cafe/2008-January/038196.html email thread] 
     46   
     47  * '''Support dynamically-linked Core-to-Core plug-ins''', so that people can add passes simply by writing a Core-to-Core function, and dynamically linking it to GHC.  This would need to be supported by an extensible mechanism like ``attributes`` in mainstream OO languages, so that programmers can add declarative information to the source program that guides the transformation pass.  Likewise the pass might want to construct information that is accessible later.  This mechanism could obviously be used for optimisations, but also for program verifiers, and perhaps also for domain-specific code generation (the pass generates a GPU file, say, replacing the Core code with a foreign call to the GPU program). 
     48 
     49    * '''Improve the GHC API''', whereby you can import GHC as a library.  We make improvements now and then, but it would benefit from some sustained attention.  A particular project would be to port the Haskell refactorer [http://www.cs.kent.ac.uk/projects/refactor-fp/hare.html HaRE] to use the GHC API. 
     50 
     51 
     52=== Parallel stuff === 
     53 
    4154  * Experiment with multiprocessor Haskell and/or STM by building and measuring applications, investigate improvements 
    42   * Build a Windows-native version of GHC (using MS tools instead of gcc). 
    43   * Make GHC work with [http://research.sun.com/projects/gcspy/ GCSpy], a generic heap visualiser tool. 
    4455  * Continue work on parallel GC: particularly independent minor-generation collections. 
    4556 
    46 MSRC has lots of other interesting work on programming languages too: F#, security, etc.  Check it out [http://research.microsoft.com/aboutmsr/labs/cambridge/ here]. 
     57=== Other stuff === 
     58 
     59  * Back end and code generation.  This is an active area at the moment, but there is sure to be more to do.  See suggestions in [wiki:BackEndNotes] 
     60 
     61  * Implement [http://repetae.net/john/recent/out/classalias.html John Meacham's class alias proposal] 
     62 
     63=== Build system === 
     64 
     65  * Build a Windows-native version of GHC (using MS tools instead of gcc). 
     66 
     67 
    4768 
    4869== How to apply == 
     
    6081Typically your personal research statement will be a couple of pages long, but it's really up to you.  You don't need to address the above questions in the order given, and you can range more widely if you want.  (You should find the same writeup useful for other purposes.)  Write in the first person, and try to convey something of yourself rather than just data.  
    6182 
     83MSRC has lots of other interesting work on programming languages too: F#, security, etc.  Check it out [http://research.microsoft.com/aboutmsr/labs/cambridge/ here]. 
     84 
    6285== Timescale == 
    6386