26 research outputs found
Behavioural and abstractor specifications
AbstractIn the literature, one can distinguish two main approaches to the definition of observational semantics of algebraic specifications. On one hand, observational semantics is defined using a notion of observational satisfaction for the axioms of the specifications and, on the other hand, one can define observational semantics by abstraction with respect to an observational equivalence relation between algebras. In this paper, we present an analysis and a comparative study of the different approaches in a more general framework which subsumes the observational case. The distinction between the different observational concepts is reflected by our notions of behavioural specification and abstractor specification. We provide necessary and sufficient conditions for the semantical equivalence of both kinds of specifications and we show that behavioural specifications can be characterized by an abstractor construction and, vice versa, abstractor specifications can be characterized in terms of behavioural specifications. Hence, there exists a duality between both concepts which allows to express each one by the other. We also study the relationships to fully abstract algebras which can be used for a further characterization of behavioural semantics. Finally, we provide proof-theoretic results which show that behavioural theories of specifications can be reduced to standard theories of some classes of algebras
Observation and abstract behaviour in specification and implementation of state-based systems
Classical algebraic specification is an accepted framework for specification. A criticism which applies is the
fact that it is functional, not based on a notion of state as most software development and implementation languages
are. We formalise the idea of a state-based object or abstract machine using algebraic means. In contrast to similar approaches we consider dynamic logic instead of equational logic as the framework for specification and implementation. The advantage is a more expressive language allowing us to specify safety and liveness conditions. It also allows a clearer distinction of functional and state-based parts which require different treatment in order to achieve behavioural abstraction when necessary. We shall in particular focus on abstract behaviour and observation. A behavioural notion of satisfaction for state-elements is needed in order to abstract from irrelevant details of the state realisation
Recommended from our members
Algebraic specification : syntax, semantics, structure
Algebraic specification is the technique of using algebras to model properties of a system and using axioms to characterize such algebras. Algebraic specification comprises two aspects: the underlying logic used in the axioms and algebras, and the use of a small, general set of operators to build specifications in a structured manner. We describe these two aspects using the unifying notion of institutions. An institution is an abstraction of a logical system, describing the vocabulary, the kinds of axioms, the kinds of algebras, and the relation between them. Using institutions, one can define general structuring operators which are independent of the underlying logic. In this paper, we survey the different kind of logics, syntax, semantics, and structuring operators that have been used in algebraic specification
Generic Go to Go: Dictionary-Passing, Monomorphisation, and Hybrid
Go is a popular statically-typed industrial programming language. To aid the
type safe reuse of code, the recent Go release (Go 1.18) published on 15th
March 2022 includes bounded parametric polymorphism via generic types. Go 1.18
implements generic types using combination of monomorphisation and call-graph
based dictionary-passing called hybrid. This hybrid approach can be viewed as
an optimised form of monomorphisation that statically generates specialised
methods and types based on possible instantiations. A monolithic dictionary
supplements information lost during monomorphisation, and it is structured
according to the program's call graph. Unfortunately, the hybrid approach still
suffers from code bloat, poor compilation speed, and limited code coverage.
In this paper we propose and formalise a new non-specialising call-site based
dictionary-passing translation. Our call-site based translation creates
individual dictionaries for each type parameter, with dictionary construction
occurring in place of instantiation, overcoming the limitations of hybrid. We
prove it correct using a novel and general bisimulation up to technique. To
better understand how different generics translations approaches work in
practice, we benchmark five translators, Go 1.18, two existing monomorphisation
translators, our dictionary-passing translator, and erasure translator. Our
findings reveal several suggestions for improvements for Go 1.18 --
specifically how to overcome the expressiveness limitations of generic Go, and
improve compile time and compiled code size performance of Go 1.18.Comment: Full version of paper submitted to OOPSLA '2
Generic refinements for behavioral specifications
This thesis investigates the properties of generic refinements of behavioral specifications.
At the base of this investigation stands the view from algebraic specification that
abstract data types can be modeled as algebras. A specification of a data type is formed
from a syntactic part, i.e. a signature detailing the interface of the data type, and a
semantic part, i.e. a class of algebras (called its models) that contains the valid implementations
of that data type.
Typically, the class of algebras that constitutes the semantics of a specification is
defined as the class of algebras that satisfy some given set of axioms. The behavioral
aspect of a specification comes from relaxing the requirements imposed by axioms, i.e.
by allowing in the semantics of a specification not only the algebras that literally satisfy
the given axioms, but also those algebras that appear to behave according to those
axioms. Several frameworks have been developed to express the adequate notions of
what it means to be a behavioral model of a set of axioms, and our choice as the setting
for this thesis will be Bidoit and Hennickerâs Constructor-based Observational Logic,
abbreviated COL.
Using specifications that rely on the behavioral aspects defined by COL we study
the properties of generic refinements between specifications. Refinement is a relation
between specifications. The refinement of a target specification by a source specification
is given by a function that constructs models of the target specification from
the models of the source specification. These functions are called constructions and
the source and target specifications that they relate are called the context of the refinement.
The theory of refinements between algebraic specifications, with or without the
behavioral aspect, has been well studied in the literature. Our analysis starts from those
studies and adapts them to COL, which is a relatively new framework, and for which
refinement has been studied only briefly.
The main part of this thesis is formed by the analysis of generic refinements.
Generic refinements are represented by constructions that can be used in various contexts,
not just in the context of their definition. These constructions provide the basis
for modular refinements, i.e. one can use a locally defined construction in a global context
in order to refine just a part of a source specification. The ability to use a refinement
outside its original context imposes additional requirements on the construction
that represents it. An implementer writing such a construction must not use details of
the source models that can be contradicted by potential global context requirements.
This means, roughly speaking, that he must use only the information available in the
source signature and also any a priori assumption that was made about the contexts of
use.
We look at the basic case of generic refinements that are reusable in every global
context, and then we treat a couple of variations, i.e. generic refinements for which
an a priori assumption it is made about the nature of their usage contexts. In each
of these cases we follow the same pattern of investigation. First we characterize the
constructions that ensure reusability by means of preservation of relations, and then, in
most cases, we show that such constructions must be definable in terms of their source
signature.
Throughout the thesis we use an informal analogy between generic (i.e. polymorphic)
functions that appear in second order lambda calculus and the generic refinements
that we are studying. This connection will enable us to describe some properties
of generic refinements that correspond to the properties of polymorphic functions inferred
from their types and named âtheorems for freeâ by Wadler.
The definability results, the connection between the assumptions made about the
usage contexts and the characterizing relations, and the âtheorems for freeâ for behavioral
specifications constitute the main contributions of this thesis
Architectural Refinement in HETS
The main objective of this work is to bring a number of improvements to the Heterogeneous Tool Set HETS, both from a theoretical and an implementation point of view. In the first part of the thesis we present a number of recent extensions of the tool, among which declarative specifications of logics, generalized theoroidal comorphisms, heterogeneous colimits and integration of the logic of the term rewriting system Maude. In the second part we concentrate on the CASL architectural refinement language, that we equip with a notion of refinement tree and with calculi for checking correctness and consistency of refinements. Soundness and completeness of these calculi is also investigated. Finally, we present the integration of the VSE refinement method in HETS as an institution comorphism. Thus, the proof manangement component of HETS remains unmodified