9,048 research outputs found
Modal logics for reasoning about object-based component composition
Component-oriented development of software supports the adaptability and maintainability of large systems, in particular if requirements change over time and parts of a system have to be modified or replaced. The software architecture in such systems can be described by components
and their composition. In order to describe larger architectures, the composition concept becomes crucial. We will present a formal framework for component composition for object-based software development. The deployment of modal logics for defining components and component composition will allow us to reason about and prove properties of components and compositions
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
Transforming ASN.1 Specifications into CafeOBJ to assist with Property Checking
The adoption of algebraic specification/formal method techniques by the
networks' research community is happening slowly but steadily. We work towards
a software environment that can translate a protocol's specification, from
Abstract Syntax Notation One (ASN.1 - a very popular specification language
with many applications), into the powerful algebraic specification language
CafeOBJ. The resulting code can be used to check, validate and falsify critical
properties of systems, at the pre-coding stage of development. In this paper,
we introduce some key elements of ASN.1 and CafeOBJ and sketch some first steps
towards the implementation of such a tool including a case study.Comment: 8 pages, 12 figure
Facilitating modular property-preserving extensions of programming languages
We will explore an approach to modular programming language descriptions and extensions in a denotational style.
Based on a language core, language features are added stepwise on the core. Language features can be described
separated from each other in a self-contained, orthogonal way. We present an extension semantics framework consisting
of mechanisms to adapt semantics of a basic language to new structural requirements in an extended language
preserving the behaviour of programs of the basic language. Common templates of extension are provided. These
can be collected in extension libraries accessible to and extendible by language designers. Mechanisms to extend
these libraries are provided. A notation for describing language features embedding these semantics extensions is
presented
Recommended from our members
Verdict functions in testing with a fault domain or test hypotheses
In state based testing it is common to include verdicts within test cases, the result of the test case being the verdict reached by the test run. In addition, approaches that reason about test effectiveness or produce tests that are guaranteed to find certain classes of faults are often based on either a fault domain or a set of test hypotheses. This paper considers how the presence of a fault domain or test hypotheses affects our notion of a test verdict. The analysis reveals the need for new verdicts that provide more information than the current verdicts and for verdict functions that return a verdict based on a set of test runs rather than a single test run. The concepts are illustrated in the contexts of testing from a non-deterministic finite state machine and the testing of a datatype specified using an algebraic specification language but are potentially relevant whenever fault domains or test hypotheses are used
Presenting Distributive Laws
Distributive laws of a monad T over a functor F are categorical tools for
specifying algebra-coalgebra interaction. They proved to be important for
solving systems of corecursive equations, for the specification of well-behaved
structural operational semantics and, more recently, also for enhancements of
the bisimulation proof method. If T is a free monad, then such distributive
laws correspond to simple natural transformations. However, when T is not free
it can be rather difficult to prove the defining axioms of a distributive law.
In this paper we describe how to obtain a distributive law for a monad with an
equational presentation from a distributive law for the underlying free monad.
We apply this result to show the equivalence between two different
representations of context-free languages
- ā¦