Google Research

Abstract Data Types in Object-Capability Systems

  • James Noble
  • Sophia Drossopoulou
  • Mark S. Miller
  • Toby Murray
  • Alex Potanin
ECOOP 2016 (2016)


The distinctions between the two forms of procedural data abstraction -- abstract data types and objects -- are well known. An abstract data type provides an opaque type declaration, and an implementation that manipulates the modules of the abstract type, while an object uses procedural abstraction to hide an individual implementation. The object-capability model has been proposed to en- able object-oriented programs to be written securely, and has been adopted by a number of practical languages including JavaScript, E, and Newspeak. This short paper addresses the question: how can we implement abstract data types in an object-capability language?

Learn more about how we do research

We maintain a portfolio of research projects, providing individuals and teams the freedom to emphasize specific types of work