Results 1  10
of
45
A Theory of Mixin Modules: Basic and Derived Operators
 Mathematical Structures in Computer Science
, 1996
"... Mixins are modules in which some components are deferred , i.e. their definition has to be provided by another module. Moreover, differently from parameterized modules (like ML functors), mixin modules can be mutually dependent and their composition supports redefinition of components (overriding). ..."
Abstract

Cited by 39 (13 self)
 Add to MetaCart
Mixins are modules in which some components are deferred , i.e. their definition has to be provided by another module. Moreover, differently from parameterized modules (like ML functors), mixin modules can be mutually dependent and their composition supports redefinition of components (overriding). In this paper, we present a formal model of mixins and their basic composition operators. These operators can be viewed as a kernel language with clean semantics in which to express more complex operators of existing modular languages, including variants of inheritance in object oriented programming. Our formal model is given in an "institution independent" way, i.e. is parameterized by the semantic framework modeling the underlying core language. Introduction In object oriented languages, the definition of an heir class H from a parent class P takes usually the form H = extend P by M , where M denotes a collection of definitions of components (typically methods) which are either new, or re...
The Requirement and Design Specification Language SPECTRUM  An Informal Introduction
, 1993
"... This paper gives a short introduction to the algebraic specification language Spectrum. Using simple, wellknown examples, the objectives and concepts of Spectrum are explained. The Spectrum language is based on axiomatic specification techniques and is oriented towards functional programs. Spectru ..."
Abstract

Cited by 36 (3 self)
 Add to MetaCart
This paper gives a short introduction to the algebraic specification language Spectrum. Using simple, wellknown examples, the objectives and concepts of Spectrum are explained. The Spectrum language is based on axiomatic specification techniques and is oriented towards functional programs. Spectrum includes the following features: ffl partial functions, definedness logic and fixed point theory ffl higherorder elements and typed abstraction ffl nonstrict functions and infinite objects ffl full firstorder predicate logic with induction principles ffl predicative polymorphism with sort classes ffl parameterization and modularization Spectrum is based on the concept of loose semantics.
Unions of NonDisjoint Theories and Combinations of Satisfiability Procedures
 THEORETICAL COMPUTER SCIENCE
, 2001
"... In this paper we outline a theoretical framework for the combination of decision procedures for constraint satisfiability. We describe a general combination method which, given a procedure that decides constraint satisfiability with respect to a constraint theory T1 and one that decides constraint s ..."
Abstract

Cited by 35 (3 self)
 Add to MetaCart
In this paper we outline a theoretical framework for the combination of decision procedures for constraint satisfiability. We describe a general combination method which, given a procedure that decides constraint satisfiability with respect to a constraint theory T1 and one that decides constraint satisfiability with respect to a constraint theory T2, produces a procedure that (semi)decides constraint satisfiability with respect to the union of T1 and T2. We provide a number of modeltheoretic conditions on the constraint language and the component constraint theories for the method to be sound and complete, with special emphasis on the case in which the signatures of the component theories are nondisjoint. We also describe some general classes of theories to which our combination results apply, and relate our approach to some of the existing combination methods in the field.
The KIVApproach to Software Verification
 KORSO: METHODS, LANGUAGES, AND TOOLS FOR THE CONSTRUCTION OF CORRECT SOFTWARE – FINAL REPORT, LNCS 1009
, 1995
"... This paper presents a particular approach to the design and verification of large sequential systems. It is based on structured algebraic specifications and stepwise refinement by program modules. The approach is implemented in Kiv (Karlsruhe Interactive Verifier), and supports the entire desig ..."
Abstract

Cited by 34 (6 self)
 Add to MetaCart
This paper presents a particular approach to the design and verification of large sequential systems. It is based on structured algebraic specifications and stepwise refinement by program modules. The approach is implemented in Kiv (Karlsruhe Interactive Verifier), and supports the entire design process starting from formal specifications and ending with verified code. Its main characteristics are a strict decompositional design discipline for modular systems, a powerful proof component, and an evolutionary verification model supporting incremental error correction and verification. We present the design methodology for modular systems, a feasible verification method for single modules, and an evolutionary verification technique based on reuse of proofs. We report on the current performance of the system, compare it to others in the field, and discuss future perspectives.
Horizontal and Vertical Structuring of Typed Graph Transformation Systems
, 1996
"... this paper we concentrate on structuring and refinement concepts for graph transformation systems. Conceptually, we distinguish between two kinds of structuring. We speak of horizontal structuring if a large specification is obtained by combining and modifying smaller ones, possibly sharing some com ..."
Abstract

Cited by 27 (14 self)
 Add to MetaCart
this paper we concentrate on structuring and refinement concepts for graph transformation systems. Conceptually, we distinguish between two kinds of structuring. We speak of horizontal structuring if a large specification is obtained by combining and modifying smaller ones, possibly sharing some common parts. Instead, if we consider the relationship between a more abstract and a more concrete version of the same specification, or between a specification and its implementation, we speak of vertical structuring.
The Amsterdam Manifesto on OCL
, 1999
"... In November 1998 the authors participated in a twoday workshop on the ..."
Abstract

Cited by 23 (3 self)
 Add to MetaCart
In November 1998 the authors participated in a twoday workshop on the
The Early Search for Tractable Ways of Reasoning About Programs
 IEEE Annals of the History of Computing
, 2003
"... This paper traces the important steps in the history up to around 1990 of research on reasoning about programs. The main focus is on sequential imperative programs but some comments are made on concurrency. Initially, researchers focussed on ways of verifying that a program satisfies its specifi ..."
Abstract

Cited by 16 (2 self)
 Add to MetaCart
This paper traces the important steps in the history up to around 1990 of research on reasoning about programs. The main focus is on sequential imperative programs but some comments are made on concurrency. Initially, researchers focussed on ways of verifying that a program satisfies its specification (or that two programs were equivalent). Over time it became clear that post facto verification is only practical for small programs and attention turned to verification methods which support the development of programs; for larger programs it is necessary to exploit a notation of compositionality. Coping with concurrent algorithms is much more challenging  this and other extensions are considered briefly. The main thesis of this paper is that the idea of reasoning about programs has been around since they were first written; the search has been to find tractable methods.
Structured Theories and Institutions
, 1999
"... Category theory provides an excellent foundation for studying structured specifications and their composition. For example, theories can be structured together in a diagram, and their composition can be obtained as a colimit. There is, however, a growing awareness, both in theory and in specificatio ..."
Abstract

Cited by 15 (3 self)
 Add to MetaCart
Category theory provides an excellent foundation for studying structured specifications and their composition. For example, theories can be structured together in a diagram, and their composition can be obtained as a colimit. There is, however, a growing awareness, both in theory and in specification practice, that structured theories should not be viewed just as the "scaffolding" used to build unstructured theories: they should become firstclass citizens in the specification process. Given a logic formalized as an institution I, we therefore ask whether there is a good definition of the category of Istructured theories, and whether they can be naturally regarded as the ordinary theories of an appropriate institution S(I) generalizing the original institution I. We answer both question in the affirmative, and study good properties of the institution I inherited by S(I). We show that, under natural conditions, a number of important properties are indeed inherited, including cocompleteness of the category of theories, liberality, and extension of the basic framework by freeness constraints. The results presented here have been used as a foundation for the module algebra of the Maude language, and seem promising as a semantic basis for a generic module algebra that could be both specified and executed within the logical framework of rewriting logic. 1
Classification and comparison of module concepts for graph transformation systems
 In Ehrig et
, 1999
"... In this chapter we use a threelevel approach for analyzing module concepts for graph transformation systems. Based on the observation that module architectures consist of basic specifications like body or export interface and relations like the implementation relation between them, or the import re ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
In this chapter we use a threelevel approach for analyzing module concepts for graph transformation systems. Based on the observation that module architectures consist of basic specifications like body or export interface and relations like the implementation relation between them, or the import relation between a client and a server module, module concepts are characterized by answering the questions 1. What are the basic specifications? 2. Which relations between specifications are used? 3. How are specifications and relations combined to module architectures? These three questions are investigated for five module concepts available in the literature. As a reference example, a sample modular specification of resource management in distributed operating systems is presented.