|Programming Languages and Systems Group
Richard Jones FBCS FRSA
Emeritus Professor of Computer Systems
I am Emeritus Professor of Computer Systems in the School of Computing at the University of Kent. I was made a Distinguished Scientist of the ACM in 2006, and an Honorary Fellow of the University of Glasgow in July 2005. I received IBM Faculty Awards in 2003, 2004 and 2005. I was elected to AITO, Association Internationale pour les Technologies Objets, in 2014. I am a member of the Programming Languages and Systems Research Group.
My chief area of interest is dynamic memory management - this grew out of work on lazy functional programming languages and particularly their efficient implementation.
The Second Edition of
my book The Garbage Collection
Handbook: the art of automatic memory management, Richard Jones, Antony
Hosking and Eliot Moss, Chapman and Hall, 2012
was released in July 2023.
Garbage Collection for Multicore Systems
The EPSRC-funded MirrorGC project (September 2010 - February 2014) investigates fully concurrent garbage collection for multicore processors. Tomas Kalibera, who has a wealth of experience in automatic memory management for real-time and embedded systems, virtual machines for these systems in general, and verification of applications for these systems, Carl Ritson, who brings experience of concurrency, and in particular scheduling, Tomoharu Ugawa (Kochi University of Technology), Laurence Hellyer and Matthew Mole contributed hugely to this project.
Improving Experimental Evaluation
Novel Garbage Collection Algorithms
The Beltway framework of collectors, developed with colleagues at the Australian National University and the Universities of Massachusetts and Texas, not only generalises existing copying collectors but also makes possible the design of new collectors that outperform state of the art generational copying collectors.
The Lifetime Aware GC (LACE) project builds on Beltway to provide a novel GC framework that can flexibly exploit object lifetime analysis yet tolerates imprecision.
With Andy King, I developed a new static analysis and a novel GC framework that allows truely independent collection of thread-local heaps. In contrast to previous work, our solution safely classifies objects even in the presence of dynamic class loading, requires neither write-barriers that may do unbounded work, nor synchronisation, nor locks during thread-local collections; our analysis is sufficiently fast to permit its integration into a high-performance, production-quality virtual machine.
Visualising the Heap
Deep understanding of program behaviour is essential to the design of the next generation of garbage collectors and explicit allocators. Until now no satisfactory tools have been available to assist the implementer in gaining an understanding of heap behaviour. GCspy is an architectural framework for the collection, transmission, storage and replay of memory management behaviour. Its architecture allows easy incorporation into any memory management system: it is not limited to garbage-collected languages. It requires only small changes to the system in which it is incorporated but provides a simple to use yet powerful data-gathering API, that scales to allow very large heaps to be visualised effectively and efficiently. GCspy allows already-running, local or remote, systems to be visualised and those systems to run at full speed outside the points at which data is gathered. Its visualisation tool presents this information in a number of novel ways. GCspy is the product of an Memory Management Network collaboration between the universities of Glasgow (Tony Printezis) and Kent (Richard Jones). Screen shots can be found here.
Distributed Reference Counting
Luc Moreau, Peter Dickman and I have been investigated how to formalise distributed reference counting, starting with the Java RMI algorithm. We used our formalisation to derive an invariant-based proof of correctness of the algorithm that avoids notoriously difficult temporal reasoning. A novel graphical representation of the algorithm allows intuitive explanations, and helped uncover a bug in the original. It also extends to describe fault tolerance in a clear way..
Distributed Garbage Collection
My PhD student, Dr. Helena Rodrigues, and I used a reference listing scheme augmented by partial tracing in a garbage collector for distributed systems that can reclaim distributed, cyclic garbage data structures. The collector is designed to be flexible thereby allowing efficiency, expediency and fault-tolerance to be traded against completeness. The algorithm places no overhead on local collectors and suspends local mutators only briefly. Partial tracing of the distributed graph involves only objects thought to be part of a garbage cycle: no collaboration with other processes is required.
A taxonomy for Distributed Garbage Collection. I have also been thinking about a taxonomy for distributed garbage collection. Sylvain Louboutin correctly observed that such distributed collectors need to free themselves from the legacy of centralised collectors. A taxonomy that avoids this legacy can illuminate new areas for distributed garbage collection research. My (rather old) Microsoft Research Lecture (7/8/00) presents an outline of such a taxonomy (PowerPoint show).
Students & post-docs
Here's what became of some of my former students and post-docs:
Lazy Functional Languages
My interest in garbage collection came from earlier work on the efficient implementation of lazy functional languages. An interesting example is the Three Instruction Machine, an abstract machine for lazy functional languages, which makes heavy demands upon the the memory management system. In particular the garbage collector must ensure that environment sharing does not lead to space leaks. Stephen Thomas and I developed an efficient and precise garbage collector tailored to the requirements of each closure (code-environment pair). The collector uses continuations to avoid all interpretive overheads and scavenges depth-first without using additional space by threading the stack through already visited environment slots.
I led the Kent team in the JISC-funded Infobike/JournalsOnline project (now ingentaJournals). The project consortium brought together publishers, librarians, computer scientists and industry to provide full-text access to journals.
Fonts and stuff I have also taught courses in Electronic Publishing and my fonts for the Z specification language are freely available for the Macintosh and Windows and can be adapted to be used with Unix. Both PostScript Type 1 and TrueType fonts are included.
I gratefully acknowledge the generous support for my research from:
School of Computing, University of Kent, Canterbury, Kent, CT2 7NF
Enquiries: +44 (0)1227 824180 or contact us.
Last Updated: 26/02/2024