Results 11  20
of
53
A Case Study in Class Library Verification: Java's Vector Class
, 1999
"... One of the reasons for the popularity of objectoriented programming is the possibility it offers for reuse of code. Usually, the distribution of an objectoriented programming language comes together with a collection of readytouse classes, in a class library. Typically, these classes contain gen ..."
Abstract

Cited by 20 (6 self)
 Add to MetaCart
One of the reasons for the popularity of objectoriented programming is the possibility it offers for reuse of code. Usually, the distribution of an objectoriented programming language comes together with a collection of readytouse classes, in a class library. Typically, these classes contain general purpose code, which can be used in many applications. Before using such classes, a programmer usually wants to know how they behave and when their methods throw exceptions. One way to do this, is to study the actual code, but since this is timeconsuming and requires understanding all particular ins and outs of the implementation, this is often not the most efficient way. Another approach is to study the documentation provided. As long as the documentation is clear and concise, this works well, but otherwise one still is forced to look at the actual code.
A TypeTheoretic Memory Model for Verification of Sequential Java Programs
, 1999
"... This paper explains the details of the memory model underlying the verification of sequential Java programs in the "LOOP" project ([14, 20]). The building blocks of this memory are cells, which are untyped in the sense that they can store the contents of the fields of an arbitrary Java object. The m ..."
Abstract

Cited by 20 (9 self)
 Add to MetaCart
This paper explains the details of the memory model underlying the verification of sequential Java programs in the "LOOP" project ([14, 20]). The building blocks of this memory are cells, which are untyped in the sense that they can store the contents of the fields of an arbitrary Java object. The main memory is modeled as three infinite series of such cells, one for storing instance variables on a heap, one for local variables and parameters on a stack, and and one for static (or class) variables. Verification on the basis of this memory model is illustrated both in PVS and in Isabelle/HOL, via several examples of Java programs, involving various subtleties of the language (wrt. memory storage).
Reasoning about Java classes
 OOPSLA’98, ACM SIGPLAN Notices
, 1998
"... We present the first results of a project called LOOP, on formal methods for the objectoriented language Java. It aims at verification of program properties, with support of modern tools. We use our own frontend tool (which is still partly under construction) for translating Java classes into logi ..."
Abstract

Cited by 18 (0 self)
 Add to MetaCart
We present the first results of a project called LOOP, on formal methods for the objectoriented language Java. It aims at verification of program properties, with support of modern tools. We use our own frontend tool (which is still partly under construction) for translating Java classes into logic, and a backend theorem prover (namely PVS, developed at SRI) for reasoning. In several examples we will demonstrate how nontrivial properties of Java programs and classes can be proved following this twostep approach.
A Complete Calculus for Equational Deduction in Coalgebraic Specification
 Recent Trends in Algebraic Development Techniques, WADT 97, volume 1376 of LNCS
, 1997
"... The use of coalgebras for the specification of dynamical systems with a hidden state space is receiving more and more attention in the years, as a valid alternative to algebraic methods based on observational equivalences. However, to our knowledge, the coalgebraic framework is still lacking a compl ..."
Abstract

Cited by 17 (0 self)
 Add to MetaCart
The use of coalgebras for the specification of dynamical systems with a hidden state space is receiving more and more attention in the years, as a valid alternative to algebraic methods based on observational equivalences. However, to our knowledge, the coalgebraic framework is still lacking a complete equational deduction calculus which enjoys properties similar to those stated in Birkhoff's completeness theorem for the algebraic case. In this paper we present a sound and complete equational calculus for coalgebras of a restricted class of polynomial functors. This restriction allows us to borrow some "algebraic" notions for the formalization of the calculus. Additionally, we discuss the notion of colours as a suitable dualization of variables in the algebraic case. Then the completeness result is extended to the "nonground" or "coloured" case, which is shown to be expressive enough to deal with equations of hidden sort. Finally we discuss some weaknesses of the proposed results wit...
Exercises in Coalgebraic Specification
, 1999
"... An introduction to coalgebraic specification is presented via examples. A coalgebraic specification describes a collection of coalgebras satisfying certain assertions. It is thus an axiomatic description of a particular class of mathematical structures. Such specifications are especially suitable fo ..."
Abstract

Cited by 16 (2 self)
 Add to MetaCart
An introduction to coalgebraic specification is presented via examples. A coalgebraic specification describes a collection of coalgebras satisfying certain assertions. It is thus an axiomatic description of a particular class of mathematical structures. Such specifications are especially suitable for statebased dynamical systems in general, and for classes in objectoriented programming languages in particular. This paper will gradually introduce the notions of bisimilarity, invariance, component classes, temporal logic and refinement in a coalgebraic setting. Besides the running example of the coalgebraic specification of (possibly infinite) binary trees, a specification of Peterson's mutual exclusion algorithm is elaborated in detail.
Components as processes: An exercise in coalgebraic modeling
 FMOODS’2000  Formal Methods for Open ObjectOriented Distributed Systems
, 2000
"... Abstract Software components, arising, typically, in systems ’ analysis and design, are characterized by a public interface and a private encapsulated state. They persist (and evolve) in time, according to some behavioural patterns. This paper is an exercise in modeling such components as coalgebras ..."
Abstract

Cited by 14 (6 self)
 Add to MetaCart
Abstract Software components, arising, typically, in systems ’ analysis and design, are characterized by a public interface and a private encapsulated state. They persist (and evolve) in time, according to some behavioural patterns. This paper is an exercise in modeling such components as coalgebras for some kinds of endofunctors on ¢¡¤ £ , capturing both (interface) types and behavioural aspects. The construction of component categories, cofibred over the interface space, emerges by generalizing the usual notion of a coalgebra morphism. A collection of composition operators as well as a generic notion of bisimilarity, are discussed.
Invariants, Bisimulations and the Correctness of Coalgebraic Refinements
 Techn. Rep. CSIR9704, Comput. Sci. Inst., Univ. of Nijmegen
, 1997
"... . Coalgebraic specifications are used to formally describe the behaviour of classes in objectoriented languages. In this paper, a general notion of refinement between two such coalgebraic specifications is defined, capturing the idea that one "concrete" class specification realises the behaviour of ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
. Coalgebraic specifications are used to formally describe the behaviour of classes in objectoriented languages. In this paper, a general notion of refinement between two such coalgebraic specifications is defined, capturing the idea that one "concrete" class specification realises the behaviour of the other, "abstract" class specification. Two (complete) prooftechniques are given to establish such refinements: one involving an invariant (a predicate that is closed under transitions) on the concrete class, and one involving a bisimulation (a relation that is closed under transitions) between the concrete and the abstract class. The latter can only be used if the abstract class is what we call totally specified. Parts of the underlying theory of invariants and bisimulations in a coalgebraic setting are included, involving least and greatest invariants and connections between invariants and bisimulations. Also, the proofprinciples are illustrated in examples (which are fully formalise...
Coalgebraic Reasoning about Classes in ObjectOriented Languages
 In Coalgebraic Methods in Computer Science, number 11. Electronic Notes in Computer Science
, 1998
"... This note briefly discusses how some of the ideas developed in the theory of coalgebras are used in a frontend tool called LOOP, developed jointly in Dresden and Nijmegen, for reasoning (with a backend theorem prover) about classes in objectoriented languages. It will describe reasoning both about ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
This note briefly discusses how some of the ideas developed in the theory of coalgebras are used in a frontend tool called LOOP, developed jointly in Dresden and Nijmegen, for reasoning (with a backend theorem prover) about classes in objectoriented languages. It will describe reasoning both about objectoriented specifications and about JAVA implementations, via examples. 1 Introduction One of the key aspects of objectorientation is that objects, as instances of a class, have a private state, which can only be accessed and modified via the operations (usually called attributes and methods) of the class of the object. It is precisely this aspect which forms the starting point of the coalgebraic analysis of classes and objects in an objectoriented setting, see [10,5]: a class is seen as a coalgebra, and an object of a class as an element of the state space of the coalgebra. More precisely, a coalgebra is an operation of the form c: X ! T (X), where X is the carrier set (or state sp...
Hidden Algebra for Software Engineering
 Proceedings Combinatorics, Computation and Logic
, 1999
"... : This paper is an introduction to recent research on hidden algebra and its application to software engineering; it is intended to be informal and friendly, but still precise. We first review classical algebraic specification for traditional "Platonic" abstract data types like integers, vectors, ma ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
: This paper is an introduction to recent research on hidden algebra and its application to software engineering; it is intended to be informal and friendly, but still precise. We first review classical algebraic specification for traditional "Platonic" abstract data types like integers, vectors, matrices, and lists. Software engineering also needs changeable "abstract machines," recently called "objects," that can communicate concurrently with other objects through visible "attributes" and statechanging "methods." Hidden algebra is a new development in algebraic semantics designed to handle such systems. Equational theories are used in both cases, but the notion of satisfaction for hidden algebra is behavioral, in the sense that equations need only appear to be true under all possible experiments; this extra flexibility is needed to accommodate the clever implementations that software engineers often use to conserve space and/or time. The most important results in hidden algebra are ...
Coalgebras For Binary Methods: Properties Of Bisimulations And Invariants
, 2001
"... Coalgebras for endofunctors C > C can be used to model classes of objectoriented languages. However, binary methods do not fit directly into this approach. This paper proposes an extension of the coalgebraic framework, namely the use of extended polynomial functors C^op x C > C . This extension ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
Coalgebras for endofunctors C > C can be used to model classes of objectoriented languages. However, binary methods do not fit directly into this approach. This paper proposes an extension of the coalgebraic framework, namely the use of extended polynomial functors C^op x C > C . This extension allows the incorporation of binary methods into coalgebraic class specifications. The paper also discusses how to define bisimulation and invariants for coalgebras of extended polynomial functors and proves many standard results. 1991 Mathematics Subject Classification. 03E20, 03G30, 68Q55, 68Q65.