Experimental software

Nick Benton and Gavin Bierman, scientists from Microsoft Research in Cambridge, have designed an experimental research language that extends C# with new features for writing concurrent programs.


Nick Benton and Gavin Bierman, scientists from Microsoft Research in Cambridge, have designed an experimental research language called C Omega that extends C# with new features for writing concurrent programs.


“Concurrent programming is notoriously difficult,” Benton said. “C Omega makes it significantly easier. We have a simple model of concurrency that works both for multiple threads on a single machine and for dealing with asynchronous communication between multiple machines,” he added.


As well as dealing with concurrency, many developers have to write applications that interoperate with databases and process XML data.


“Typical enterprise applications have a relational database at the back, a middle tier of business logic written in C#, and an XML or HTML presentation tier at the front,” Bierman said. “That’s three different data models, and people spend a lot of time and effort just converting between them.”


C Omega bridges the gap between Relational, Object, and XML data access by creating a type system that is a combination of all three data models. Instead of adding built-in XML or relation types to the C# language, the researchers have made certain general changes to the C# type system that make it more conducive for programming against both structured relational data and semi-structured XML data.


A compiler for the language is available to the public. It can be downloaded from http://research.microsoft.com/Comega