Results 11  20
of
71
The definition of Extended ML: a gentle introduction
 THEORETICAL COMPUTER SCIENCE
, 1995
"... Extended ML (EML) is a framework for the formal development of modular Standard ML (SML) software systems. Development commences with a specification of the behaviour required and proceeds via a sequence of partial solutions until a complete solution, an executable SML program, is obtained. All s ..."
Abstract

Cited by 36 (12 self)
 Add to MetaCart
Extended ML (EML) is a framework for the formal development of modular Standard ML (SML) software systems. Development commences with a specification of the behaviour required and proceeds via a sequence of partial solutions until a complete solution, an executable SML program, is obtained. All stages in this development process are expressed in the EML language, an extension of SML with axioms for describing properties of module components. This is an overview of the formal definition of the EML language. To complement the full technical details presented elsewhere, it provides an informal explanation of the main ideas, gives the rationale for certain design decisions, and outlines some of the technical issues involved. EML is unusual in being built around a "real" programming language having a formallydefined syntax and semantics. Interesting and complex problems arise both from the nature of this relationship and from interactions between the features of the language.
An ImplementationOriented Semantics for Module Composition
, 1997
"... This paper describes an approach to module composition by executing "module expressions" to build systems out of component modules; the paper also gives a novel semantics intended to aid implementers. The semantics is based on set theoretic notions of tuple set, partial signature, and inst ..."
Abstract

Cited by 34 (14 self)
 Add to MetaCart
(Show Context)
This paper describes an approach to module composition by executing "module expressions" to build systems out of component modules; the paper also gives a novel semantics intended to aid implementers. The semantics is based on set theoretic notions of tuple set, partial signature, and institution, thus avoiding more difficult mathematics theory. Language features include information hiding, both vertical and horizontal composition, and views for binding modules to interfaces. Vertical composition refers to the hierarchical structuring of a system into layers, while horizontal composition refers to the structure of a given layer. Modules may involve information hiding, and views may involve behavioral satisfaction of a theory by a module. Several "Laws of Software Composition" are given, which show how the various module composition operations relate. Taken together, this gives foundations for an algebraic approach to software engineering. 1.1 Introduction The approach to module compos...
Behavioural Theories and The Proof of Behavioural Properties
, 1996
"... Behavioural theories are a generalization of firstorder theories where the equality predicate symbol is interpreted by a behavioural equality of objects (and not by their identity). In this paper we first consider arbitrary behavioural equalities determined by some (partial) congruence relation and ..."
Abstract

Cited by 33 (8 self)
 Add to MetaCart
Behavioural theories are a generalization of firstorder theories where the equality predicate symbol is interpreted by a behavioural equality of objects (and not by their identity). In this paper we first consider arbitrary behavioural equalities determined by some (partial) congruence relation and we show how to reduce the behavioural theory of any class of algebras to (a subset of) the standard theory of some corresponding class of algebras. This reduction is the basis of a method for proving behavioural theorems whenever an axiomatization of the behavioural equality is provided. Then we focus on the important special case of (partial) observational equalities where two elements are observationally equal if they cannot be distinguished by observable computations over some set of input values. We provide general conditions under which an obvious infinite axiomatization of the observational equality can be replaced by a finitary one and we provide methodological guidelines for finding such...
Modular Correctness Proofs of Behavioural Implementations
, 1995
"... . We introduce a concept of behavioural implementation for algebraic specifications which is based on an indistinguishability relation (called behavioural equality). The central objective of this work is the investigation of proof rules that first allow us to establish the correctness of behavioural ..."
Abstract

Cited by 32 (13 self)
 Add to MetaCart
. We introduce a concept of behavioural implementation for algebraic specifications which is based on an indistinguishability relation (called behavioural equality). The central objective of this work is the investigation of proof rules that first allow us to establish the correctness of behavioural implementations in a modular (and stepwise) way and, moreover, are practicable enough to induce proof obligations that can be discharged with existing theorem provers. Under certain conditions our proof technique can also be applied for proving the correctness of implementations based on an abstraction equivalence between algebras in the sense of Sannella and Tarlecki. The whole approach is presented in the framework of total algebras and firstorder logic with equality. 1 Introduction Algebraic specification techniques allow one to formalize correctness notions for program development steps. Thereby an important role is played by observability concepts since it is often essential to abst...
Proof of Correctness of Object Representations
"... This paper presents an algebraic account of implementation that is applicable to the object paradigm. The key to its applicability is the notion of state: objects have local states that are observable only through their outputs. That is, objects may be viewed as abstract machines with hidden local s ..."
Abstract

Cited by 28 (14 self)
 Add to MetaCart
This paper presents an algebraic account of implementation that is applicable to the object paradigm. The key to its applicability is the notion of state: objects have local states that are observable only through their outputs. That is, objects may be viewed as abstract machines with hidden local state (as in [9]). Consequently, a correct implementation need only have the required visible behaviour. We use hidden order sorted algebra to formalise the object paradigm [4, 5, 8]. Advantages of an algebraic approach include a high level of intellectual rigour, a large body of supporting mathematics, and simple, efficient proofs using only equational logic. A wide variety of extensions to equational logic have been developed to treat various programming features, while preserving its essential simplicity. For example, order sorted equational logic uses a notion of subsort to treat computations that may raise exceptions or fail to terminate. Hidden sorted logic extends standard equational logic to capture an important distinction between immutable data types, such as booleans and integers, and mutable objects, such as program variables and database entities. The terms abstract data types and abstract object classes refer to these two kinds of entity. The former represent `visible' data values; the latter represent data stored in a hidden state. In hidden sorted equational logic, an equation of hidden sort need not be satisfied in the usual sense, but only up to observability, in that only its visible consequences need hold. Thus, hidden sorted logic allows greater freedom in implementations. The simplicity of the underlying logic is important, because we want a tractable
Proving Correctness Of Refinement And Implementation
, 1996
"... The notions of state and observable behaviour are fundamental to many areas of computer science. Hidden sorted algebra, an extension of many sorted algebra, captures these notions through hidden sorts and the behavioural satisfaction of equations. This makes it a powerful formalisation of abstract m ..."
Abstract

Cited by 28 (4 self)
 Add to MetaCart
The notions of state and observable behaviour are fundamental to many areas of computer science. Hidden sorted algebra, an extension of many sorted algebra, captures these notions through hidden sorts and the behavioural satisfaction of equations. This makes it a powerful formalisation of abstract machines, and many results suggest that it is also suitable for the semantics of the object paradigm. Another extension of many sorted algebra, namely order sorted algebra, has proved useful in system specification and prototyping because of the way it handles subtypes and errors. The combination of these two algebraic approaches, hidden order sorted algebra, has also been proposed as a foundation for object paradigm, and has much promise as a foundation for Software Engineering. This paper extends recent work on hidden order sorted algebra by investigating the refinement and implementation of hidden order sorted specifications. We present definitions of refinement and implementation for suc...
Hidden Coinduction: Behavioral Correctness Proofs for Objects
 Mathematical Structures in Computer Science
, 1999
"... This paper unveils and motivates an ambitious programme of hidden algebraic research in software engineering, beginning with our general goals, continuing with an overview of results, and including some future plans. The main contribution is powerful hidden coinduction techniques for proving behavio ..."
Abstract

Cited by 27 (8 self)
 Add to MetaCart
This paper unveils and motivates an ambitious programme of hidden algebraic research in software engineering, beginning with our general goals, continuing with an overview of results, and including some future plans. The main contribution is powerful hidden coinduction techniques for proving behavioral correctness of concurrent systems; several mechanical proofs are given using OBJ3. We also show how modularization, bisimulation, transition systems, concurrency and combinations of the functional, constraint, logic and object paradigms fit into hidden algebra. 1. Introduction
Inheritance and Cofree Constructions
 European Conference on ObjectOriented Programming, number 1098 in Lect. Notes Comp. Sci
, 1995
"... The coalgebraic view on classes and objects is elaborated to include inheritance. Inheritance in coalgebraic specification (of classes) will be understood dually to parametrization in algebraic specification. That is, inheritance involves restriction (specialization), where parametrization involves ..."
Abstract

Cited by 27 (7 self)
 Add to MetaCart
(Show Context)
The coalgebraic view on classes and objects is elaborated to include inheritance. Inheritance in coalgebraic specification (of classes) will be understood dually to parametrization in algebraic specification. That is, inheritance involves restriction (specialization), where parametrization involves extension. And cofree constructions are "best" restrictions, like free constructions are "best" extensions. To make this view on inheritance precise we need a suitable notion of behaviour preserving morphism between classes, which will be defined as a "coalgebra map uptobisimulation". AMS Subject Classification (1991): 18C10, 03G30 CR Subject Classification (1991): D.1.5, D.2.1, E.1, F.1.1, F.3.0 Keywords & Phrases: object, class, inheritance, coalgebraic specification, bisimulation 1. Introduction Two basic relations in objectoriented languages are: object o belongs to class C, and: class C inherits from class C 0 (see e.g. [20]). Class membership yields what is sometimes called a...
DTRE  A SemiAutomatic Transformation System
 In Constructing Programs from Specifications
, 1991
"... This paper describes the theoretical framework and an implemented system (Dtre) for the specification and verified refinement of specifications using operations on abstract data types. The system is semiautomatic in that users can specify some (possibly none) of the implementations and the system w ..."
Abstract

Cited by 25 (3 self)
 Add to MetaCart
This paper describes the theoretical framework and an implemented system (Dtre) for the specification and verified refinement of specifications using operations on abstract data types. The system is semiautomatic in that users can specify some (possibly none) of the implementations and the system will determine the rest of the implementations. Data types are specified as parameterized theories within manysorted firstorder logic; usually these theories are centered around inductive sorts. Abstract specifications (theories) are refined in a stepwise fashion into increasingly more concrete theories. Our primary method of refinement is based on theory interpretation [1, 2, 3]. Theories and interpretations provide a clean, logically based separation between types and their implementations; thus permitting specification to proceed independently of implementation while simultaneously providing a basis for rapid and verifiably correct transformation to efficient code. Dtre provides a conven...
On Behavioural Abstraction and Behavioural Satisfaction in HigherOrder Logic
, 1996
"... The behavioural semantics of specifications with higherorder logical formulae as axioms is analyzed. A characterization of behavioural abstraction via behavioural satisfaction of formulae in which the equality symbol is interpreted as indistinguishability, which is due to Reichel and was recently g ..."
Abstract

Cited by 25 (5 self)
 Add to MetaCart
(Show Context)
The behavioural semantics of specifications with higherorder logical formulae as axioms is analyzed. A characterization of behavioural abstraction via behavioural satisfaction of formulae in which the equality symbol is interpreted as indistinguishability, which is due to Reichel and was recently generalized to the case of firstorder logic by Bidoit et al, is further generalized to this case. The fact that higherorder logic is powerful enough to express the indistinguishability relation is used to characterize behavioural satisfaction in terms of ordinary satisfaction, and to develop new methods for reasoning about specifications under behavioural semantics. 1 Introduction An important ingredient in the use of algebraic specifications to describe data abstractions is the concept of behavioural equivalence between algebras, which seems to appropriately capture the "black box" character of data abstractions, see e.g. [GGM76], [GM82], [ST87] and [ST95]. Roughly speaking (since there ...