Microsoft Research

I thought the Microsoft Research site deserved a mention as there are some great little projects on there.

A pick of my favourites must include:

AbsIL – the Abstract IL SDK – basically this gives you a AST of your assembly and a load of utilities for walking the AST and modifying it – there could be some wonderful uses of this such as parameter contract enforcement as a post compile step – IE if you use attributes to specify contracts for your parameters (IE not null) then you could use the AbsIL SDK to enforce this for you by adding code to functions with that attribute.

Another project I find quite interesting is the C# Software Transactional Memory – allowing you to specify atomic blocks of code which act like a transaction – either committing or rolling back.

Detours is another great little project, which is surprisingly useful at times, available for download – it allows you to intercept Win32 calls on any x86 machine – particularly useful if you are playing around in the bowels on the Win32 API.

F# – a OCaml based compiler targeting .NET – although OCaml is a strange language it can be useful for expressing some problems clearly and concisely particularly when working with AST’s etc – in fact much of AbsIL relies on F# (although you can use AbsIL from C# if you want.. its a little harder though)

MSR Accelerator Project – Use the GPU to perform parallel calculations in .NET – an especially interesting area of research especially as newer GPU’s become more general purpose if you want to know more about the area in general then have a look at http://www.gpgpu.org/

Scalable Fabric – A slightly funky – but interesting method of managing windows on your desktop – I had a play with this and although it killed my machines performance and doesn’t really work on a dual head setup its an interesting idea.

SimPastry – A P2P routing overlay – similar to Chord and Tapestry – Pastry is used as a routing overlay over a Peer 2 Peer network allowing the construction of robust distributed systems (Have a look here for more information)

There are many more projects on the site. I haven’t looked at them all yet but I always find it interesting to see what Microsoft are up to.