• Publications
  • Influence
A Survey of Practical Software Adaptation Techniques
TLDR
Software adaptation techniques appear in many disparate areas of research literature, and under many guises. Expand
  • 35
  • 2
  • PDF
Dynamically diagnosing type errors in unsafe code
TLDR
This paper describes libcrunch, a system for binary-compatible run-time type checking of unmodified unsafe code, currently focusing on C. Expand
  • 19
  • 1
  • PDF
The missing link: explaining ELF static linking, semantically
TLDR
We provide the first validated formalisation of a realistic executable and linkable format (ELF), and capture aspects of the Application Binary Interfaces for four mainstream platforms (AArch64, AMD64, Power64, IA32). Expand
  • 19
  • 1
  • PDF
The mythical matched modules: overcoming the tyranny of inflexible software construction
Conventional tools yield expensive and inflexible software. By requiring that software be structured as plug-compatible modules, tools preclude out-of-order development; by treating interoperation ofExpand
  • 11
  • 1
  • PDF
Virtual machines should be invisible
TLDR
We motivate an alternative approach to VM design aiming to be unobtrusive in general, and prioritising foreign function interfacing and support for runtime analysis tools (such as debuggers, profilers etc.). Expand
  • 14
  • 1
  • PDF
The JVM is not observable enough (and what to do about it)
TLDR
Bytecode instrumentation is a preferred technique for building profiling, debugging and monitoring tools targeting the Java Virtual Machine (JVM), yet is fundamentally dangerous. Expand
  • 29
  • PDF
Towards a dynamic object model within Unix processes
TLDR
We investigate whether it makes sense for the latter to "become VMs", by evolving Unix's user-level services to subsume those of VMs. Expand
  • 22
  • PDF
ShadowVM: robust and comprehensive dynamic program analysis for the java platform
TLDR
We propose ShadowVM, a system for instrumentation-based dynamic analyses on the JVM which combines a number of techniques to greatly improve both isolation and coverage. Expand
  • 13
  • PDF
Component adaptation and assembly using interface relations
TLDR
We propose Cake, a rule-based language describing compositions using interface relations. Expand
  • 13
  • PDF
Rethinking software connectors
TLDR
We propose a precise characterisation of connectors, discuss how they relate to the other three classes, and contradict the suggestion that connectors and components are disjoint. Expand
  • 13
  • PDF