Contracts for First-Class Classes

Abstract

First-class classes enable programmers to abstract over patterns in the class hierarchy and to experiment with new forms of object-oriented programming such as mixins and traits. This increase in expressive power calls for tools to control the complexity of the software architecture. A contract system is one possible tool that has seen much use in object-oriented programming languages, but existing contract systems cannot cope with first-class classes. On the one hand, the typical contract language deals only with plain values such as numbers, while classes are higher-order values. On the other hand, contract specifications are usually contained within class definitions, while classes as values call for a separate contract language.

Document Details

Document Type
Pub Defense Publication
Publication Date
Nov 01, 2013
Source ID
10.1145/2518189

Entities

People

  • Asumu Takikawa
  • Christos Dimoulas
  • Matthias Felleisen
  • T. Stephen Strickland

Organizations

  • Air Force Office of Scientific Research
  • Defense Advanced Research Projects Agency
  • National Science Foundation
  • Northeastern University

Tags

Fields of Study

  • Computer science
  • Engineering

Readers

  • Mathematics or Statistics
  • Psychometric Testing or Psychological Assessment.
  • Software Engineering.