Skip to main content
PRL Project

Component Specification Using Event Classes

by Mark Bickford

Working in a higher-order, abstract logic of events, we define event classes, a generalization of interfaces, and propagation rules that specify information flow between event classes. We propose a general definition of a component as a scheme, parameterized by a set of input classes, that defines a set of output classes and propagation rules. The specification of a component is a relation between its input classes and defined output classes that follows from its propagation rules and definitions.

We define a subset of programmable event classes that can be compiled and executed and a language, called E#, for specifying components. Components specified in E# preserve programmability–if the component’s input classes are programmable then its output classes and propagation rules are programmable.

Thus a component specified in E# is a higher-order object: given programs for its input classes, it produces a distributed program for propagating information and programs for its output classes. These programs can be passed as inputs to other components so that components can be composed.

bibTex ref: Bic09

cite link