A safe and efficient multi-language component framework based on dynamic compilation. Components are a versatile mechanism for the construction of extendible systems and for improved code reusability. Emerging environments like Microsoft's .NET support the interaction of components written in different programming languages. To date, such systems do not adequately isolate components which therefore must trust each other. This is unacceptable for components loaded across the Internet. We will dev ....A safe and efficient multi-language component framework based on dynamic compilation. Components are a versatile mechanism for the construction of extendible systems and for improved code reusability. Emerging environments like Microsoft's .NET support the interaction of components written in different programming languages. To date, such systems do not adequately isolate components which therefore must trust each other. This is unacceptable for components loaded across the Internet. We will develop a framework for secure execution of component software, based on hardware-enforced protection domains. To minimize the resulting runtime overheads we will provide a component model with lightweight context switching. A novel typed intermediate language and dynamic compilation techniques will offer complementary optimisations.
Read moreRead less
Design and verification of correct, efficient and secure concurrent systems. This project aims to provide methods for the design and verification of correct, secure and efficient concurrent software that are scalable and mechanised. Computers with multiple processors are now the norm and are used in a wide range of safety, security and mission critical software applications such as transport, health and infrastructure. These multi-core architectures have the potential to lead to important effici ....Design and verification of correct, efficient and secure concurrent systems. This project aims to provide methods for the design and verification of correct, secure and efficient concurrent software that are scalable and mechanised. Computers with multiple processors are now the norm and are used in a wide range of safety, security and mission critical software applications such as transport, health and infrastructure. These multi-core architectures have the potential to lead to important efficiency gains, but can introduce complex and error-prone behaviours that cannot be managed using traditional software development approaches. This project will produce better, scalable and mechanised methods for the design and verification of such software which is expected to reduce the prevalence of failures in efficient, modern software.Read moreRead less