CAL: A novel actor language

Researchers: Joern Janneck, Chris Chang, Yang Zhao
Advisor:Edward A. Lee

The concept of actors was first introduced by Carl Hewitt as a mean of modeling distributed knowledge-based algorithms. Actors has since then become widely used.

An Actor is a computational entity that communicates with other actors and the environment by passing tokens via its input and output ports. Actor may have state and parameters. When an actor is executed, it is said to be fired. During a firing, input tokens are consumed, output tokens are produced, and the internal state is updates. Actors are connected to form models or applications.

CAL is a small domain-specific language for writing down the functionality of actors - including specifically their ports, their parameters, typing constraints, and firing rules. It is designed to be embedded in an environment providing necessary infrastructure, such as data types, operations and function libraries. The goal is to provide a concise high-level description of actors by providing statically analyzable information about the behavior of an actor, such as production and consumption rates, to facilitate schedule, compose, and static check of actor networks.

Current work includes:

  1. using program transformation techniques for manipulating CAL actor specifications, and compositions of CAL actors. The transformations are expressed as XSLT scripts manipulating the XML document that represents the CAL abstract syntax tree.
  2. generating executable code from an actor description, in order to simulate or eventually implement an actor on some target platform.
  3. scheduling.
  4. compatibility checking between connected actors.
  5. CAL language developing and changing.

For more information about CAL, see

Last updated 11/18/02