Laboratory for Foundations
of Computer Science
.NET lab

.NET projects at Edinburgh

Microsoft's .NET platform provides many opportunities for well-founded theoretical investigations, and for research into future computing systems. The subjects of this research include the .NET platform itself; the common intermediate language; the high-level languages supported and their compilation environments; the unprecedented degree of language interoperability which .NET affords; and the opportunities for mobility-aware applications.

The following are some of the activities at Edinburgh related to .NET, with links to further information. If you know of other projects that should appear in this list please tell Ian Stark.

Student projects

Any undergraduate and MSc students interested in working with .NET as part of their major project are welcome to make use of the laboratory. Please consult the usual project list, or propose your own project through the standard channels.


Jon Cook, Stephen Gilmore

P# is an interoperable safe logic programming language for .NET, based around Prolog. See the P# web site for more details and to download the compiler.

Faster compilation of functional languages

Sam Lindley, Ian Stark

The core of the SML.NET compiler is a rewriting engine for an intermediate language based on computational monads. Techniques based on normalisation by evaluation offer the potential to significantly speed up compilation by taking advantage of detailed type information and high-level semantics.

Type Systems for Resource Bounded Computation

David Aspinall, Michal Konečný

An EPSRC project developing automated tools for resource analysis in high-level languages, carrying powerful new complexity results about typed programs through optimising compilers into certified bytecode.

Resource Bounded Computation web site

Mobile Resource Guarantees

David Aspinall, Stephen Gilmore, Martin Hofmann, Don Sannella, Ian Stark

MRG is a joint Edinburgh-Munich collaboration funded by the European Commission to research into "global computation": investigating programs that travel over networks between computers and other devices, running in different places at different times.

In these situations users need protection against insecure mobile code that may use excessive memory or overload the processor. With MRG, programs carry "guarantees": condensed mathematical proofs of their resource usage. Guarantees are unforgeable and automatically checked, allowing users to enforce a "resource policy" that states what kinds of code they are willing to run.

MRG web site

Credit Derivatives Pricing Engines

Christopher von Mecklenburg

The placement of Derivatives Pricing Engines upon dedicated servers using a Windows platform, in order to enhance the usage of the software to determine the Value at Risk (VaR) of Credit Derivatives. The pricing engines used are based upon Mathematica for computation of the VaR.

The purpose of the pricing is to determine the exposure of Banks holding credit derivatives on behalf of thrid parties or on their own account.

The determination of the derivatives exposure is regarded as an important exercise by the Banks, the Bank of International Settlements and the International Accounting Standards Board.