First-Class State Change in Plaid

Abstract

Objects model the world, and state is fundamental to a faithful modeling. Engineers use state machines to understand and reason about state transitions, but programming languages provide little support for building software based on state abstractions. We propose Plaid, a language in which objects are modeled not just in terms of classes, but in terms of changing abstract states. Each state may have its own representation as well as methods that may transition the object into a new state. A formal model precisely defines the semantics of core Plaid constructs such as state transition and trait-like state composition. We evaluate Plaid through a series of examples taken from the Plaid compiler and the standard libraries of Smalltalk and Java. These examples show how Plaid can more closely model state-based designs, enhancing understandability enhancing dynamic error checking, and providing reuse benefits.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Oct 01, 2011
Accession Number
ADA556691

Entities

People

  • Jonathan Erik Aldrich
  • Joshua Sunshine
  • Karl Naden
  • Sven Stork

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Abstracts
  • Compilers
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Judgment
  • Language
  • Lepidoptera
  • Models
  • Object Oriented Programming
  • Object-Oriented Programming Language
  • Programming Languages
  • Semantics
  • Standards
  • Transitions

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Database Systems and Applications
  • East Asian Political and Security Studies within the Soviet Union