An object-oriented event calculus
Despite the rising popularity and usefulness of events, or implicit invocation, in software design, the availability of general-purpose event mechanisms are rare. Further, most event mechanisms available for software design are implemented as libraries or sets of macros that are constrained by the language in which they are used; making such mechanisms inconvenient to use as well as error-prone. Event mechanisms that are a part of a programming language can do away with such constraints; thus making events easier to use. However, there are few languages that offer built-in events and even fewer languages have a built-in general-purpose event mechanism. In order to promote the study of implicit invocation in programming languages, this thesis presents a formal programming language foundation for events. This thesis expands the, object-based, imp[Sigma]-calculus to create a calculus for objects and events, the [Rho Pi Sigma]-calculus. The [Rho Pi Sigma]-calculus has a formal syntax, semantics, and a sound type system that is useful for defining practical programming languages that include built-in events. This, along with the ability of the calculus to easily simulate many different event mechanisms make it a good start toward a formal understanding of implicit invocation.