Synergies of Language and Operating System co-Design in Singularity

Along with the design of Singularity, we co-designed a programming language called Sing# as an extension of C#. Reliability being one of the main motivations of the entire Singularity project, the design of both the language and the OS is geared towards static verification. In this talk, I will describe several aspects of how this overall goal resulted in programming language features that are directly supporting some architectural features of the OS. The co-design aspect of this effort is important in two ways: 1) the language can enforce some architectural invariants that the OS design prescribes, thereby avoiding violations of the design in the implementation, and 2) the invariants thus enforced reduce the number of possibilities and the resulting complexity of the implementation of both compiler and the runtime support for these new features. The end result is code that is more reliable by construction and often faster because it is simpler.

Version à imprimerDernière mise à jour : February 20, 2007, at 09:52 PM