EDBT 2026 Demo / reviewers in the wild / expert
Kathryn E. Gray
dblp:43/6410
· DBLP profile ↗
10ranked-venue papers
4as first author
0since 2021 · last 2019
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 3 first-authorSystems, architecture and hardware · 1 · 1 first-authorHuman-computer interaction and ubiquitous computing · 1Applied, interdisciplinary, general and emerging computing · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
3 papers |
Processor architecture and microarchitecture · 64% Memory systems · 24% Distributed systems · 11% | |
| Software engineering, system software, and programming languages
5 papers |
Concurrent programming · 50% Programming languages and type systems · 46% Program verification · 4% |
Topics — the 12 heaviest of 14, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Processor architecture and microarchitecture
instruction set architecture |
0.6 | 2 | 2019 | ISA semantics for ARMv8-a, RISC-v, and CHERI-MIPS · Proc. ACM Program. Lang. 2019 Modelling the ARMv8 architecture, operationally: concurrency and ISA · POPL 2016 |
Concurrent programming
memory models |
0.5 | 2 | 2017 | Mixed-size concurrency: ARM, POWER, C/C++11, and SC · POPL 2017 Modelling the ARMv8 architecture, operationally: concurrency and ISA · POPL 2016 |
Memory systems › memory consistency
memory consistency model |
0.5 | 2 | 2016 | Modelling the ARMv8 architecture, operationally: concurrency and ISA · POPL 2016 An integrated concurrency and core-ISA architectural envelope definition, and test oracle, for IBM POWER multiprocessors · MICRO 2015 |
Programming languages and type systems › language semantics
formal semantics |
0.4 | 1 | 2019 | ISA semantics for ARMv8-a, RISC-v, and CHERI-MIPS · Proc. ACM Program. Lang. 2019 |
Concurrent programming › memory models
weak memory models |
0.3 | 1 | 2017 | Mixed-size concurrency: ARM, POWER, C/C++11, and SC · POPL 2017 |
Programming languages and type systems › language semantics › formal semantics
operational semantics |
0.2 | 1 | 2016 | Modelling the ARMv8 architecture, operationally: concurrency and ISA · POPL 2016 |
Distributed systems › consistency models
weak consistency |
0.2 | 1 | 2015 | An integrated concurrency and core-ISA architectural envelope definition, and test oracle, for IBM POWER multiprocessors · MICRO 2015 |
Concurrent programming › memory models › weak memory models
c11 memory model |
0.1 | 1 | 2017 | Mixed-size concurrency: ARM, POWER, C/C++11, and SC · POPL 2017 |
Programming languages and type systems › program specification
contracts |
0.1 | 1 | 2005 | Fine-grained interoperability through mirrors and contracts · OOPSLA 2005 |
Programming languages and type systems
interoperability |
0.1 | 1 | 2005 | Fine-grained interoperability through mirrors and contracts · OOPSLA 2005 |
Programming languages and type systems › interoperability
language interoperability |
0.1 | 1 | 2005 | Fine-grained interoperability through mirrors and contracts · OOPSLA 2005 |
Programming languages and type systems
type systems |
0.1 | 1 | 2005 | Fine-grained interoperability through mirrors and contracts · OOPSLA 2005 |
Methods — techniques the papers use, named apart from their topics
operational semantics · 0.8sail · 0.8proof-assistant definitions · 0.8emulator generation · 0.8litmus testing · 0.5dependent type system · 0.5architectural envelope definition · 0.4reflection · 0.1mirrors · 0.1contracts · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | ISA semantics for ARMv8-a, RISC-v, and CHERI-MIPSabstractArchitecture specifications notionally define the fundamental interface between hardware and software: the envelope of allowed behaviour for processor implementations, and the basic assumptions for software development and verification. But in practice, they are typically prose and pseudocode documents, not rigorous or executable artifacts, leaving software and verification on shaky ground. In this paper, we present rigorous semantic models for the sequential behaviour of large parts of the mainstream ARMv8-A, RISC-V, and MIPS architectures, and the research CHERI-MIPS architecture, that are complete enough to boot operating systems, variously Linux, FreeBSD, or seL4. Our ARMv8-A models are automatically translated from authoritative ARM-internal definitions, and (in one variant) tested against the ARM Architecture Validation Suite. We do this using a custom language for ISA semantics, Sail, with a lightweight dependent type system, that supports automatic generation of emulator code in C and OCaml, and automatic generation of proof-assistant definitions for Isabelle, HOL4, and (currently only for MIPS) Coq. We use the former for validation, and to assess specification coverage. To demonstrate the usability of the latter, we prove (in Isabelle) correctness of a purely functional characterisation of ARMv8-A address translation. We moreover integrate the RISC-V model into the RMEM tool for (user-mode) relaxed-memory concurrency exploration. We prove (on paper) the soundness of the core Sail type system. We thereby take a big step towards making the architectural abstraction actually well-defined, establishing foundations for verification and reasoning. Alasdair Armstrong, Thomas Bauereiß, Brian Campbell 0001, Alastair Reid 0001, Kathryn E. Gray, Robert M. Norton, Prashanth Mundkur, Mark Wassell, Jon French, Christopher Pulte, Shaked Flur, Ian Stark, Neelakantan R. Krishnaswami, Peter Sewell |
Proc. ACM Program. Lang. | 5 |
| 2017 | Mixed-size concurrency: ARM, POWER, C/C++11, and SCabstractPrevious work on the semantics of relaxed shared-memory concurrency has only considered the case in which each load reads the data of exactly one store. In practice, however, multiprocessors support mixed-size accesses, and these are used by systems software and (to some degree) exposed at the C/C++ language level. A semantic foundation for software, therefore, has to address them. Shaked Flur, Susmit Sarkar, Christopher Pulte, Kyndylan Nienhuis, Luc Maranget, Kathryn E. Gray, Ali Sezgin, Mark Batty, Peter Sewell |
POPL | 6 |
| 2016 | Modelling the ARMv8 architecture, operationally: concurrency and ISAabstractIn this paper we develop semantics for key aspects of the ARMv8 multiprocessor architecture: the concurrency model and much of the 64-bit application-level instruction set (ISA). Our goal is to clarify what the range of architecturally allowable behaviour is, and thereby to support future work on formal verification, analysis, and testing of concurrent ARM software and hardware. Establishing such models with high confidence is intrinsically difficult: it involves capturing the vendor's architectural intent, aspects of which (especially for concurrency) have not previously been precisely defined. We therefore first develop a concurrency model with a microarchitectural flavour, abstracting from many hardware implementation concerns but still close to hardware-designer intuition. This means it can be discussed in detail with ARM architects. We then develop a more abstract model, better suited for use as an architectural specification, which we prove sound w.r.t.~the first. The instruction semantics involves further difficulties, handling the mass of detail and the subtle intensional information required to interface to the concurrency model. We have a novel ISA description language, with a lightweight dependent type system, letting us do both with a rather direct representation of the ARM reference manual instruction descriptions. We build a tool from the combined semantics that lets one explore, either interactively or exhaustively, the full range of architecturally allowed behaviour, for litmus tests and (small) ELF executables. We prove correctness of some optimisations needed for tool performance. We validate the models by discussion with ARM staff, and by comparison against ARM hardware behaviour, for ISA single- instruction tests and concurrent litmus tests. Shaked Flur, Kathryn E. Gray, Christopher Pulte, Susmit Sarkar, Ali Sezgin, Luc Maranget, Will Deacon, Peter Sewell |
POPL | 2 |
| 2015 | An integrated concurrency and core-ISA architectural envelope definition, and test oracle, for IBM POWER multiprocessorsabstractWeakly consistent multiprocessors such as ARM and IBM POWER have been with us for decades, but their subtle programmer-visible concurrency behaviour remains challenging, both to implement and to use; the traditional architecture documentation, with its mix of prose and pseudocode, leaves much unclear. Kathryn E. Gray, Gabriel Kerneis, Dominic P. Mulligan, Christopher Pulte, Susmit Sarkar, Peter Sewell |
MICRO | 1 |
| 2014 | Abstract Modelling of Tethered DNA Circuits
Matthew R. Lakin, Rasmus Lerchedahl Petersen, Kathryn E. Gray, Andrew Phillips |
DNA | 3 |
| 2014 | Lem: reusable engineering of real-world semanticsabstractRecent years have seen remarkable successes in rigorous engineering: using mathematically rigorous semantic models (not just idealised calculi) of real-world processors, programming languages, protocols, and security mechanisms, for testing, proof, analysis, and design. Building these models is challenging, requiring experimentation, dialogue with vendors or standards bodies, and validation; their scale adds engineering issues akin to those of programming to the task of writing clear and usable mathematics. But language and tool support for specification is lacking. Proof assistants can be used but bring their own difficulties, and a model produced in one, perhaps requiring many person-years effort and maintained over an extended period, cannot be used by those familiar with another. Dominic P. Mulligan, Scott Owens, Kathryn E. Gray, Tom Ridge, Peter Sewell |
ICFP | 3 |
| 2009 | Logical Testing
Kathryn E. Gray, Alan Mycroft |
FASE | 1 |
| 2008 | Safe Cross-Language Inheritance
Kathryn E. Gray |
ECOOP | 1 |
| 2006 | Design of class hierarchies: an introduction to OO program designabstractWe report on the experience of teaching an introductory second semester computer science course on Fundamentals of Computer Science that uses our curriculum How to Design Class Hierarchies and the ProfessorJ programming languages implemented within the DrScheme programming environment.This comprehensive curriculum for an introductory course focuses on principled design of class based programs in an object-oriented language (Java) with a carefully structured gradual increase in the complexity of the class structure and the programming language.The curriculum includes extensive lecture notes, programming assignments, closed lab plans, exams, and the first part of a textbook. The curriculum is supported by a programming environment ProfessorJ with a series of gradually more complex teaching languages that support a novice learner. The pedagogy focuses on teaching the students problem solving and design skills that transcend the study of programming. The organization of the topics draws its strength from the theory of programming languages by focusing on the structure of data rather than on algorithms, user interactions, or arcane details of the programming language syntax. Viera K. Proulx, Kathryn E. Gray |
SIGCSE | 2 |
| 2005 | Fine-grained interoperability through mirrors and contractsabstractAs a value flows across the boundary between interoperating languages, it must be checked and converted to fit the types and representations of the target language. For simple forms of data, the checks and coercions can be immediate; for higher order data, such as functions and objects, some must be delayed until the value is used in a particular way. Typically, these coercions and checks are implemented by an ad-hoc mixture of wrappers, reflection, and dynamic predicates. We observe that 1) the wrapper and reflection operations fit the profile of mirrors, 2) the checks correspond to contracts, and 3) the timing and shape of mirror operations coincide with the timing and shape of contract operations. Based on these insights, we present a new model of interoperability that builds on the ideas of mirrors and contracts, and we describe an interoperable implementation of Java and Scheme that is guided by the model. Kathryn E. Gray, Robert Bruce Findler, Matthew Flatt |
OOPSLA | 1 |