Completed Computing & AI History, Languages & Philosophy

Semantic Foundations for Real-World Systems

In plain English

AI plain-English summary

Modern computer processors routinely reorder memory operations for speed, breaking the intuitive assumption that events happen in a single global time order. This makes programming multiprocessor systems—now standard in everything from laptops to data centres—deeply error-prone, because the mathematical models and reasoning tools that underpin software verification assume a simpler, sequential memory model that no longer holds. The result is insecure, unreliable systems that fail with alarming regularity, costing billions in economic damage and social disruption. This research aims to build precise mathematical models of how real-world multiprocessors actually behave, accounting for those subtle reorderings. From these models, the researcher will develop new programming language designs, verification techniques, and compilers that can guarantee correctness even on today's complex hardware. If successful, the work would provide a high-confidence foundation for operating system kernels, hypervisors, and other critical infrastructure software—the kind that quietly keeps power grids, financial networks, and communications running. It would also bridge the gap between mathematically rigorous computer science theory and practical systems engineering, much as applied mathematics underpins traditional engineering disciplines.

View original technical description
Computer systems have been pervasive for many years, but despite this, and despite the huge resources devoted to their construction, they are still typically insecure, prone to failure, and hard to use. Major failures are commonplace, in sharp contrast with the products of other engineering industries, and dealing with them, and with the day-to-day lesser flaws, has huge economic and social costs. The core technical difficulty is system complexity: the range of behavior, the large scale, and the legacy of old design choices combine to make it hard to understand these systems well enough to engineer them well. My main research goal is to develop intellectual tools that suffice for solid system-building, analogous to the applied mathematics of more traditional engineering disciplines. This must be grounded on real systems - it cannot be done in theoretical isolation. My approach, as documented in the Track Record, is to focus on the key articulation points in the hierarchy of abstractions used to build systems: programming languages, processor instruction sets, network protocols, and so forth. These are relatively stable points in a rapidly changing environment, are critical to all system development, and are small enough that a modest team can address them. Each demands different research: new language constructs, new specification, reasoning, and testing techniques, and so forth. In this Fellowship I will pursue this approach, focussing on the problems in building computer systems above the intricate relaxed memory models of modern multiprocessors. Multiprocessor systems are now the norm (as further speed-up of sequential processors has recently become impractical), but programming them is very challenging. A key difficulty is that these systems do not provide a sequentially consistent memory, in which events appear to occur in a single global time order, but instead permit subtle reorderings, rendering intuitive global-time reasoning unsound. Much previous work across a range of Computer Science, in programming languages, program logics, concurrency theory, model checking, and so on, makes the now-unrealistic assumption of sequential consistency, and it must now be revisited in this more complex setting.I will develop precise mathematical models of the behavior of real-world multiprocessors that take such reorderings into account, and develop semantics and reasoning techniques above them. Using those, I will consider the verification of high-performance concurrent algorithms (as used in operating system and hypervisor kernels), the design of higher-level languages, and verified compilation of those languages to real machines. This will enable future applications to be developed above a high-confidence and high-performance substrate. It should also have a broader beneficial effect on research in Computer Science, drawing together mathematically well-founded theory and systems-building practice.

View the original record at the funder ↗

Researchers

Peter Sewell (Principal Investigator)

Related Research

Grants with similar aims, by meaning.

Multiprocessors: From Microarchitecture to Semantic Theory
Reliable Many-Core Programming
Reasoning with Relaxed Memory Models
REMS: Rigorous Engineering for Mainstream Systems
Advanced Formal Verification Techniques for Heterogeneous Multi-core Programming

Original classification

Fellowship

Plain English summaries and category classifications on this site are generated by AI and may not perfectly reflect the original research.