Results 1  10
of
45
Essential Concepts of Algebraic Specification and Program Development
, 1996
"... The main ideas underlying work on the modeltheoretic foundations of algebraic specification and formal program development are presented in an informal way. An attempt is made to offer an overall view, rather than new results, and to focus on the basic motivation behind the technicalities presente ..."
Abstract

Cited by 57 (16 self)
 Add to MetaCart
The main ideas underlying work on the modeltheoretic foundations of algebraic specification and formal program development are presented in an informal way. An attempt is made to offer an overall view, rather than new results, and to focus on the basic motivation behind the technicalities presented elsewhere.
Toward formal development of ML programs: foundations and methodology
, 1989
"... A formal methodology is presented for the systematic evolution of modular Standard ML programs from specifications by means of verified refinement steps, in the framework of the Extended ML specification language. Program development proceeds via a sequence of design (modular decomposition), codi ..."
Abstract

Cited by 54 (23 self)
 Add to MetaCart
A formal methodology is presented for the systematic evolution of modular Standard ML programs from specifications by means of verified refinement steps, in the framework of the Extended ML specification language. Program development proceeds via a sequence of design (modular decomposition), coding and refinement steps. For each of these three kinds of steps, conditions are given which ensure the correctness of the result. These conditions seem to be as weak as possible under the constraint of being expressible as "local" interface matching requirements. Interfaces are only required to match up to behavioural equivalence, which is seen as vital to the use of data abstraction in program development. Copyright c fl 1989 by D. Sannella and A. Tarlecki. All rights reserved. An extended abstract of this paper will appear in Proc. Colloq. on Current Issues in Programming Languages, Joint Conf. on Theory and Practice of Software Development (TAPSOFT), Barcelona, Springer LNCS (1989)....
Hiding More of Hidden Algebra
 FM'99  Formal Methods
, 1999
"... This paper generalizes the hidden algebra approach to allow: (P1) operations with multiple hidden arguments, and (P2) defining behavioral equivalence with a subset of operations, in addition to the already present (P3) builtin data types, (P4) nondeterminism, (P5) concurrency, and (P6) noncongruen ..."
Abstract

Cited by 44 (15 self)
 Add to MetaCart
This paper generalizes the hidden algebra approach to allow: (P1) operations with multiple hidden arguments, and (P2) defining behavioral equivalence with a subset of operations, in addition to the already present (P3) builtin data types, (P4) nondeterminism, (P5) concurrency, and (P6) noncongruent operations. All important results generalize, but more elegant formulations use the new institution in Section 5. Behavioral satisfaction appeared 1981 in [20], hidden algebra 1989 in [9], multiple hidden arguments 1992 in [1], congruent and behavioral operations in [1, 18], behavioral equivalence defined by a subset of operations in [1], and noncongruent operations in [5]; all this was previously integrated in [21], but this paper gives new examples, institutions, and results relating hidden algebra to information hiding. We assume familiarity with basics of algebraic specification, e.g., [11, 13].
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.
Hiding and Behaviour: an Institutional Approach
, 1994
"... Theories with hidden sorts provide a setting to study the idea of behaviour and behavioural equivalence of elements. But there are variants on the notion of theory: many sorted algebras, order sorted algebras and so on; we would like to use the theory of institutions to develop ideas of some general ..."
Abstract

Cited by 20 (3 self)
 Add to MetaCart
Theories with hidden sorts provide a setting to study the idea of behaviour and behavioural equivalence of elements. But there are variants on the notion of theory: many sorted algebras, order sorted algebras and so on; we would like to use the theory of institutions to develop ideas of some generality. We formulate the notion of behavioural equivalence in a more abstract and categorical way, and we give a general explication of "hiding" in an institution. We use this show that both hidden many sorted algebras and hidden order sorted algebras yield institutions.
A Hidden Herbrand Theorem: Combining the Object and Logic Paradigms
 Principles of Declarative Programming
, 1998
"... : The benefits of the object, logic (or relational), functional, and constraint paradigms ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
(Show Context)
: The benefits of the object, logic (or relational), functional, and constraint paradigms
Structuring Specifications intheLarge and intheSmall: HigherOrder Functions, Dependent Types and Inheritance in SPECTRAL
 PROC. COLLOQ. ON COMBINING PARADIGMS FOR SOFTWARE DEVELOPMENT, JOINT CONF. ON THEORY AND PRACTICE OF SOFTWARE DEVELOPMENT (TAPSOFT
"... ..."
Global Development via Local Observational Construction Steps
, 2002
"... The way that refinement of individual "local" components of a specification relates to development of a "global" system from a specification of requirements is explored. Observational interpretation of specifications and refinements add expressive power and flexibility while brin ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
The way that refinement of individual "local" components of a specification relates to development of a "global" system from a specification of requirements is explored. Observational interpretation of specifications and refinements add expressive power and flexibility while bringing in some subtle problems. The results are instantiated in the context of Casl architectural specifications.
A Survey of Formal Software Development Methods
 SOFTWARE ENGINEERING
, 1988
"... This paper is a survey of the current state of the art of research on methods for formal software development. The scope of this paper is necessarily restricted so as to avoid discussion of a great many approaches at a very superficial level. First, although some of the ideas discussed below could b ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
This paper is a survey of the current state of the art of research on methods for formal software development. The scope of this paper is necessarily restricted so as to avoid discussion of a great many approaches at a very superficial level. First, although some of the ideas discussed below could be (and have been) applied to hardware development as well as to software development, this topic will not be treated here. Second, the special problems involved in the development of concurrent systems will not be discussed here although again many of the approaches mentioned below could be applied in this context. Third, no attempt is made to treat programming methodologies such as Jackson's method and program development systems such as the MIT Programmer's Apprentice which are not formally based. Finally, this survey does not claim to be fully exhaustive although an attempt has been made to cover most of the main approaches. Many of the technical details of the different approaches discussed have been glossed over or simplified for the purposes of this presentation; full details may be found in the cited references.