A little while ago some members of our team experimented various ways to reduce the Relational<->Objects<->XML (ROX) impedance mismatch by adding concepts and operators from the relational and XML (specifically W3C XML Schema) world into an object oriented programming language. This effort was spear headed by a number of smart folks on our team including Erik Meijer, Matt Warren, Chris Lovett  and a bunch of others all led by William Adams. The object oriented programming language which was used as a base for extension was C#. The new language was once called X# but eventually became known as Xen.

Erik Meijer presented Xen at XML 2003 and I blogged about his presentation after the conference. There have also been two papers published about the ideas behind Xen; Programming with Rectangles, Triangles, and Circles and Unifying Tables, Objects and Documents. It's a new year and the folks working on Xen have moved on to other endeavors related to future versions of Visual Studio and the .NET Framework.

However Xen is not lost. It is now part of the Microsoft Research project, Cw (pronounced C-Omega). Even better you can download a preview of the Cw  compiler from the Microsoft Research downloads page


Wednesday, July 14, 2004 4:51:06 PM (GMT Daylight Time, UTC+01:00)
Did you notice a blog entry that went by a couple of weeks ago from someone at Sun doing something similar? You guys should really get together before some sort of ugly fracture happens. (I couldn't find the entry again when I went looking for it bt I'm not a very good searcher/googler.)
Thursday, July 15, 2004 5:42:29 AM (GMT Daylight Time, UTC+01:00)
I saw Cw via another post -- and was mostly attracted to it because of the sync features. I do a lot of threaded programming... But your post prompted me to look at the Xen paper; some of that would reduce the XML code I currently write from 10s and 100's fo lines to 1 or 2 to 10's of lines.

But this brings up another point. It is very cool to have this, and I can download and install this compiler and start using it. But that doesn't make it all that useful if I want to share. For example, lets say I write some code using this, and C# 2.0 comes out with generics. Now I'm faced with an unfortunate choice.

We need some sort of first-class plug-in architecture for compilers. I know a (very) little bit about compilers, and I would think writing one would be very difficult! (I have one copiler course under my belt from the late '80's).

With such an architecture, one could write the plug in. WIth the new compiler perhaps the plug-in wouldn't work right off the bat, but only minor mods would be required...
gordonwatts@mindspring.com (Gordon Watts)
Comments are closed.