Kathryn E. Gray

Kathryn E. Gray
University of Cambridge | Cam · Computer Laboratory

PhD Computer Science

About

24
Publications
2,535
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
660
Citations
Citations since 2017
3 Research Items
406 Citations
2017201820192020202120222023020406080
2017201820192020202120222023020406080
2017201820192020202120222023020406080
2017201820192020202120222023020406080
Additional affiliations
July 2012 - December 2015
University of Cambridge
Position
  • Research Associate
July 2011 - December 2011
Microsoft Research, Cambridge
Position
  • Research Developer
Education
September 2000 - August 2006
University of Utah
Field of study
  • Computer Science
September 1996 - May 2000
Rice University
Field of study
  • Computer Science, and History

Publications

Publications (24)
Article
Full-text available
Architecture 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...
Conference Paper
Previous 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 softwar...
Article
Previous 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 softwar...
Conference Paper
In 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 concur...
Conference Paper
In 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 concur...
Conference Paper
Full-text available
Weakly 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. In this paper we show how a precise architectur...
Article
Full-text available
Recent 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...
Article
Full-text available
Recent 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...
Article
Scripting languages are used to quickly and easily develop or ex-tend programs. Frequently, these scripted programs are combined with libraries and other programs from conventional languages to build more complex applications. Bridging the gap between dif-ferent languages requires manual data conversions and dynamic checks which can introduce subtl...
Conference Paper
Software is often tested with unit tests, in which each procedure is executed in isolation, and its result compared with an expected value. Individual tests correspond to Hoare triples used in program logics, with the pre-conditions encoded into the procedure initializations and the post-conditions encoded as assertions. Unit tests for procedures t...
Conference Paper
Inheritance is a standard means for reuse and for interfacing with external libraries. In a multi-language software product, extending a class written in a statically-typed language with a dynamically-typed class can require a significant number of manual indirections and other error-prone complications. Building on our previous interoperability wo...
Conference Paper
We 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...
Conference Paper
Full-text available
We 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...
Conference Paper
As 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 w...
Article
Our experimental compiler translates Java to PLT Scheme; it en- ables the use of Java libraries within Scheme programs, and it makes our Scheme programming tools available when program- ming with Java. With our system, a programmer can extend and use classes from either language, and Java programmers can em- ploy other Scheme data by placing it in...
Conference Paper
In the second-semester programming course at the University of Utah, we have observed that our students suffer unnecessarily from a mismatch between the course content and the programming environment. The course is typical, in that it exposes students to Java a little at a time. The programming environments are also typical, in that they report com...
Conference Paper
In the second-semester programming course at the University of Utah, we have observed that our students suffer unnecessarily from a mismatch between the course content and the programming environment. The course is typical, in that it exposes students to Java a little at a time. The programming environments are also typical, in that they report com...
Article
. The growing application of theorem proving techniques has increased the need for customized theorem provers. Powerful provers contain numerous interacting subsystems, each of which requires substantial time and expertise to build; constructing new provers from scratch is virtually prohibitive. Plug-and-play prover frameworks promise an alternativ...
Conference Paper
Full-text available
xml is a language for describing markup languages for struc- tured data. A growing number of applications that process xml docu- ments are transformers, i.e., programs that convert documents between xml languages. Unfortunately, the current proposals for transformers are complex general-purpose languages, which will be unappealing as the xml user b...
Article
Our experimental compiler translates Java to PLT Scheme; it en- ables the use of Java libraries within Scheme programs, and it makes our Scheme programming tools available when program- ming with Java. With our system, a programmer can extend and use classes from either language, and Java programmers can em- ploy other Scheme data by placing it in...
Article
Existing systems for writing unit tests exploit built-in lan- guage constructs, such as reflection, to simulate the addi- tion of testing constructs. While these simulations provide the minimally necessary functionality, they fail to support testing properly in many instances. In response, we have designed, implemented, and evaluated extensions for...
Article
Thesis (Ph. D.)--School of Computing, University of Utah, 2006. Includes bibliographical references (leaves [140]-144).

Network

Cited By