Davide Ancona An Algebraic Approach to Mixins and Modularity
نویسندگان
چکیده
State Machines (alias evolving algebras as defined by Y. Gurevich) have been used to specify languages (e.g. Prolog, C++, VHDL) and architectures (e.g. PVM, APE100, Transputer, DLX), to validate standard language implementations (e.g. of Prolog, Occam), to verify numerous distributed and real-time protocols, etc.. See [2] for a recent survey and general discussion of the approach. In this talk, we explain the use the software designer can make of ASMs for a systematic modular development of well documented programs. We exemplify the method by an ASM solution of the production cell control problem (posed in the case study book Formal Development of Reactive Systems edited by C. Lewerentz and T. Lindner, Springer LNCS 891, 1995). As starting point we present the ground model which faithfully reflects the production cell as informally specified by C. Lewerentz and T. Lindner op. cit. We explain how the information hiding and abstraction mechanisms of ASMs allow the designer to formulate the ground model as an appropriate interface to the customer; this provides a possibility to discuss and negotiate with the customer, in rigorous yet simple terms of traditional mathematical language, so that one can come to a common understanding of the contract (i.e. of what the informal description really means) and of the conditions on its being met eventually by the algorithmic design. The modularity capabilities of ASMs are used to reflect in a direct way the distributed nature of the production cell. Starting from this abstract model of the system we define a series of refined models all the way to executable C code (which controls successfully the production cell simulation environment, running at FZI Karlsruhe). The ability of ASMs to reflect arbitrary abstraction levels facilitates the modular
منابع مشابه
An Algebraic Approach to Mixins and Modularity
We present an algebraic formalization of the notion of mixin module, i.e. a module where the deenition of some components is deferred. Moreover, we deene a set of basic operators for composing mixin modules, intended to be a kernel language with clean semantics in which to express more complex operators of existing modular languages, including variants of inheritance in object oriented programm...
متن کاملA Theory of Mixin Modules: Algebraic Laws and Reduction Semantics
Received Mixins are modules which may contain deferred components, i.e. components not deened in the module itself; moreover, in contrast to parameterized modules (like ML functors), they can be mutually dependent and allow their deenitions to be overridden. In a preceding paper we have deened syntax and a categorical semantics of a kernel language of mixin modules. Here, we take instead an axi...
متن کاملMIX(FL): A Kernel Language of Mixin Modules
We deene a kernel language for the manipulation of mixin modules with the aim of providing foundations for the design of advanced module systems. Several working examples are presented showing the beneets of the use of mixins and overriding in module systems; moreover, a set of typing rules ensures that the language supports separate compilation. The denotational semantics of the language is ba...
متن کاملA Theory of Mixin Modules: Basic and Derived Operators
Mixins are modules in which some components are deferred, i.e. their deenition has to be provided by another module. Moreover, diierently from parameterized modules (like ML functors), mixin modules can be mutually dependent and their composition supports redeen-ition of components (overriding). In this paper, we present a formal model of mixins and their basic composition operators. These oper...
متن کاملJam - A Smooth Extension of Java with Mixins
In this paper we present Jam, an extension of the Java language supporting mixins, that is, parametric heir classes. A mixin declaration in Jam is similar to a Java heir class declaration, except that it does not extend a fixed parent class, but simply specifies the set of fields and methods a generic parent should provide. In this way, the same mixin can be instantiated on many parent classes,...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008