Results 1  10
of
11
Reasoning about Classes in ObjectOriented Languages: Logical Models and Tools
, 1998
"... A formal language ccsl is introduced for describing specifications of classes in objectoriented languages. We show how class specifications in ccsl can be translated into higher order logic. This allows us to reason about these specifications. In particular, it allows us (1) to describe (various) i ..."
Abstract

Cited by 34 (15 self)
 Add to MetaCart
A formal language ccsl is introduced for describing specifications of classes in objectoriented languages. We show how class specifications in ccsl can be translated into higher order logic. This allows us to reason about these specifications. In particular, it allows us (1) to describe (various) implementations of a particular class specification, (2) to develop the logical theory of a specific class specification, and (3) to establish refinements between two class specifications. We use the (dependently typed) higher order logic of the proofassistant pvs, so that we have extensive tool support for reasoning about class specifications. Moreover, we describe our own frontend tool to pvs, which generates from ccsl class specifications appropriate pvs theories and proofs of some elementary results.
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 24 (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
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.
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 ...
From Algebras and Coalgebras to Dialgebras
, 2001
"... This paper investigates the notion of dialgebra, which generalises the notions of algebra and coalgebra. We show that many (co)algebraic notions and results can be generalised to dialgebras, and investigate the essential dierences between (co)algebras and arbitrary dialgebras. ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
This paper investigates the notion of dialgebra, which generalises the notions of algebra and coalgebra. We show that many (co)algebraic notions and results can be generalised to dialgebras, and investigate the essential dierences between (co)algebras and arbitrary dialgebras.
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.
Coalgebras and Monads in the Semantics of Java
 Theoretical Computer Science
, 2002
"... This paper describes the basic structures in the denotational and axiomatic semantics of sequential Java, both from a monadic and a coalgebraic perspective. This semantics is an abstraction of the one used for the verification of (sequential) Java programs using proof tools in the LOOP project at th ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
This paper describes the basic structures in the denotational and axiomatic semantics of sequential Java, both from a monadic and a coalgebraic perspective. This semantics is an abstraction of the one used for the verification of (sequential) Java programs using proof tools in the LOOP project at the University of Nijmegen. It is shown how the monadic perspective gives rise to the relevant computational structure in Java (composition, extension and repetition), and how the coalgebraic perspective o#ers an associated program logic (with invariants, bisimulations, and Hoare logics) for reasoning about the computational structure provided by the monad.
Hidden Algebraic Engineering
 Conference on Semigroups and Algebraic Engineering
, 1997
"... : This paper outlines a research programme in algebraic engineering. It starts with a review of classical algebraic specification for abstract data types, such as integers, vectors, booleans, and lists. Software engineering also needs abstract machines, recently called "objects," that can communicat ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
: This paper outlines a research programme in algebraic engineering. It starts with a review of classical algebraic specification for abstract data types, such as integers, vectors, booleans, and lists. Software engineering also needs abstract machines, recently called "objects," that can communicate concurrently with other objects, and that have local states with visible "attributes" that are changed by inputs. Hidden algebra is a new development in algebraic semantics for such systems; its most important results are powerful hidden coinduction principles for proving behavioral properties, especially behavioral refinement. 1 Introduction In view of the title of this conference, I should confess to being an algebraic engineer in (perhaps) the following four different senses: 1. I use algebra to build real software systems. 2. I build huge algebras to help build software systems. 3. I build software tools to help deal with these huge algebras. 4. I build new kinds of algebra, to get be...