Classes and inheritance in actor-oriented design

Abstract

Actor-oriented components emphasize concurrency and temporal semantics and are used for modeling and designing embedded software and hardware. Actors interact with one another through ports via a messaging schema that can follow any of several concurrent semantics. Domain-specific actor-oriented languages and frameworks are common (Simulink, LabVIEW, SystemC, etc.). However, they lack many modularity and abstraction mechanisms that programmers have become accustomed to in object-oriented components, such as classes, inheritance, interfaces, and polymorphism, except as inherited from the host language. This article shows a form that such mechanisms can take in actor-oriented components, gives a formal structure, and describes a prototype implementation. The mechanisms support actor-oriented class definitions, subclassing, inheritance, and overriding. The formal structure imposes structural constraints on a model (mainly the “derivation invariant”) that lead to a policy to govern inheritance. In particular, the structural constraints permit a disciplined form of multiple inheritance with unambiguous inheritance and overriding behavior. The policy is based formally on a generalized ultrametric space with some remarkable properties. In this space, inheritance is favored when actors are “closer” (in the generalized ultrametric), and we show that when inheritance can occur from multiple sources, one source is always unambiguously closer than the other.

Document Details

Document Type
Pub Defense Publication
Publication Date
Jul 01, 2009
Source ID
10.1145/1550987.1550992

Entities

People

  • Edward A. Lee
  • Stephen Neuendorffer
  • Xiaojun Liu

Organizations

  • National Science Foundation
  • Sun Microsystems
  • United States Army Research Laboratory
  • University of California, Berkeley

Tags

Fields of Study

  • Computer science

Readers

  • Database Systems and Applications
  • Systems Analysis and Design

Technology Areas

  • Space