This document was originally hosted at the ETHZ. It remains under the ETH license and is in the WayBack archive.
Active Oberon for .net
A Language Interoperability Project
with Microsoft Research
Overview | ||||
Active Oberon for .net is an evolution of the programming language Oberon in the context of the new Microsoft .net technology. Its highlights are:
Definitions are abstractions. More precisely, a definition is an interface, optionally equipped with a state space and predefined method implementations. Definitions can be refined (that is extended in terms of state, functionality or implementation) to new definitions or implemented by object types. Each definition implemented by an object type corresponds to a facet or service unit of the object type exposed to clients. Programs in Active Oberon for .net are typically structured as populations of active objects or agents communicating with each other via definitions. Consequently, the Active Oberon programming model integrates seamlessly with the architecture of distributed systems. Also provided in Active Oberon for .net is a generic type OBJECT, optionally followed by a set of postulated definitions. However, there is no (non-trivial) type hierarchy or class hierarchy in Active Oberon for .net. In particular, Oberon's type extension is re-interpreted in Active Oberon for .net as implemented abstraction. Also new to the language is a block statement construct of the form BEGIN { modifiers } ... ON EXCEPTION ... END; where modifiers is a list of directives like ACTIVE (separate thread), (mutually) EXCLUSIVE, and CONCURRENT, and the optional ON EXCEPTION clause is used to handle any exception occurring within the block statement. In addition, the language features enumeration types along the Pascal/ Modula lines. Active Oberon for .net was developed at the ETH Zürich in the group of Prof. Jürg Gutknecht. More information can be found via links in the side bar on the left.
|