The most popular web browsers are widely used on all kinds of devices today. That makes it all the more dangerous if the browser software contains programming errors which can be exploited as security vulnerabilities. But these programming errors are very difficult to avoid. For the best performance and responsiveness, browsers have to process instructions in parallel. This means that the developers have to program very complex code.

"Some jobs you can only do with a sharp knife and hence have to take care not to cut too far. With programming concurrent software it is the same. Enabling fast execution of program code always means the risk of programming errors", explains Derek Dreyer, who is on the faculty of the Max Planck Institute for Software Systems, located in Kaiserslautern and Saarbrücken. In Saarbrücken Dreyer leads the "Foundations of Programming" group and teaches computer science at Saarland University.

His goal is to prevent such programming errors even during the development of the software. To address a practical example, he and his group are focusing on the programming language Rust. Since 2010, it has been developed by Mozilla, a US-based software organization also responsible for the web browser Firefox. In the interim, the programming language has become advanced enough that it is already being used for developing the new web browser "Servo", which may replace Firefox soon.

"Not only Mozilla, but also Dropbox is excited about it. In contrast to other programming languages, Rust offers developers a genuine balance between safety and control", Dreyer says. This means a fine-grained control over memory management and the allocation of resources, essential for developing applications like operating systems or web browsers.

But Rust has its weak points, too. Some have already been discovered last year. Therefore, Rust's developers appreciate Dreyer's project to eliminate remaining programming errors through mathematical correctness proofs.

To find bugs or to provide evidence of their absence, the computer scientists have to come up with new methods of proof. They are the first to meet that challenge with regard to Rust. The computer scientists are investigating how the latest components of Rust, whose safety has not yet been proven, can work without errors.

The European Research Council is supporting Dreyer with the Consolidator Grant. This gives him five years and two million euros to pursue his project. The evaluation criterion for this is the scientific excellence of the researcher and the research proposal.

###

The Max Planck Institute for Software Systems

Computer systems are ubiquitous in our daily life. In addition to conventional desktop computing and Internet applications, sophisticated software systems can be found in almost all technical devices, from mobile phones to traffic lights. They support the operations of banks, hospitals, universities and public authorities, to name just a few. The Max Planck Institute for Software Systems, located in Kaiserslauten and Saarbrücken, carries out basic research that is dedicated to language design, analysis, modeling, implementation and evaluation of software systems, among other applications. Particular areas of interest include programming systems, the comparison of distributed and networked systems and of embedded and autonomous systems, as well as aspects of the formal modeling, analysis, security and stability of cutting-edge software engineering.