C#, Spec#, and Sing#...

Sep 18, 2009 at 4:41 PM


well, i'm still new to singularity and haven't read all of the papers & docs completely, so don't mind me asking questions that maybe have been answered somewhere else yet... plus, i haven't got that much experience in kernel design & programming, admittetly. especially not for a kernel that follows such an untraditional approach in design like singularity does.

so, as far as i get it, the managed part of singularity is written in three languages (c#, spec#, and sing#), or better: one language (c#) and two "dialects" of it (spec# and sing#). now my question is: are things like spec# and sing# really needed to write a managed os? i know, it's a very elegant way to use and express the dynamic and functionality of channels, for example, directly in high-level language - but these "extensions" to the language are rather proprietary and not standardized. what about expressing these semantics in standard c#? would that be much more difficult to accomplish?

what i've been thinking is that singularity maybe is going a step too far on the language level. i know, this is research, but i'd love to see a managed os written in a managed language like c# without any extensions to reach that goal.

Sep 20, 2009 at 2:34 AM

Hi fschneidereit,

As far as I know, spec# and sing# are not strictly required but do help greatly with the development of this OS.

see: http://www.sharpos.org/doku.php

This project is apparently 100% C#.

I personally very much like the presence of a delete operator so I am not complaining about the direction that Singularity is taking :D

Best Regards,