Results 21 - 30
of
91
An abstract monadic semantics for value recursion
- In Proceeding of the 2003 Workshop on Fixed Points in Computer Science (FICS
, 2003
"... This paper proposes an operational semantics for value recursion in the context of monadic metalanguages. Our technique for combining value recursion with computational effects works uniformly for all monads. The operational nature of our approach is related to the implementation of recursion in Sch ..."
Abstract
-
Cited by 17 (6 self)
- Add to MetaCart
This paper proposes an operational semantics for value recursion in the context of monadic metalanguages. Our technique for combining value recursion with computational effects works uniformly for all monads. The operational nature of our approach is related to the implementation of recursion in Scheme and its monadic version proposed by Friedman and Sabry, but it defines a different semantics and does not rely on assignments. When contrasted to the axiomatic approach proposed by Erkök and Launchbury, our semantics for the continuation monad invalidates one of the axioms, adding to the evidence that this axiom is problematic in the presence of continuations. 1
Inheritance using contracts and object composition
- In WCOP Workshop on component-based systems at ECOOP 97
, 1997
"... Abstract. Normal class-based code inheritance across component boundaries creates a dependency between the involved components. To avoid this, a speci cation of the inherited class must be part of the respective component's contract and the inheriting class must be speci ed with reference to this sp ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
Abstract. Normal class-based code inheritance across component boundaries creates a dependency between the involved components. To avoid this, a speci cation of the inherited class must be part of the respective component's contract and the inheriting class must be speci ed with reference to this speci cation only. With this, inheritance can be replaced by object composition without sacri cing the possibility of static analysis, yet being more exible. 1
Modeling Subobject-based Inheritance
, 1996
"... : A model of subobjects and subobject selection gives us a concise expression of key semantic relationships in a variety of inheritance-based languages. Subobjects and their selection have been difficult to reason about explicitly because they are not explicit in the languages that support them. Th ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
: A model of subobjects and subobject selection gives us a concise expression of key semantic relationships in a variety of inheritance-based languages. Subobjects and their selection have been difficult to reason about explicitly because they are not explicit in the languages that support them. The goal of this paper is to present a relatively simple calculus to describe subobjects and subobject selection explicitly. Rather than present any deep theorems here, the goal is to present a general calculus that can be used to explore the design of inheritance systems. . Modeling Subobject-based Inheritance Jonathan G. Rossie Jr. Daniel P. Friedman Department of Computer Science, Indiana University 215 Lindley Hall, Bloomington, Indiana 47405 fjrossie,dfriedg@cs.indiana.edu Telephone: 812.855.4885, Fax: 812.855.4829 Mitchell Wand College of Computer Science, Northeastern University 360 Huntington Avenue #161CN, Boston, MA 02115 wand@ccs.neu.edu Telephone: 617.373.2072, Fax: 617....
An Object-Oriented Refinement Calculus with Modular Reasoning
, 1992
"... In this thesis, the refinement calculus is extended to support a variety of object-oriented programming styles. The late binding of procedure calls in object-oriented languages is modelled by defining an object-oriented system to be a function from procedure names and argument values to the procedur ..."
Abstract
-
Cited by 15 (1 self)
- Add to MetaCart
In this thesis, the refinement calculus is extended to support a variety of object-oriented programming styles. The late binding of procedure calls in object-oriented languages is modelled by defining an object-oriented system to be a function from procedure names and argument values to the procedures that are invoked by late binding. The first model allows multiple dispatch late binding, in the style of CLOS. This model is then specialised to the single dispatch case, giving a model that associates types with objects, which is similar to existing class based object-oriented languages. Both models are then restricted so that they support modular reasoning. The concept of modular reasoning has been defined informally in the literature, both for non-object-oriented systems and for object-oriented systems. This thesis gives the first formal definition of modular reasoning for object-oriented languages. Intuitively, the definition seems to capture the minimum possible requirements necessa...
An Algebraic Semantics of Subobjects
- In Proceedings of the Tenth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'95
, 1996
"... Existing formalisms of inheritance are not sufficient to model the complexities of the kind of multiple inheritance exemplified in C++. Any satisfactory formalism must model the complicating effects of virtual and nonvirtual base classes as well as virtual and non-virtual methods. By abstracting the ..."
Abstract
-
Cited by 14 (2 self)
- Add to MetaCart
Existing formalisms of inheritance are not sufficient to model the complexities of the kind of multiple inheritance exemplified in C++. Any satisfactory formalism must model the complicating effects of virtual and nonvirtual base classes as well as virtual and non-virtual methods. By abstracting the implementational notion of a subobject and formalizing subobject selection, we develop a formalism to model this combination of features. Not intended as a formal semantics of C++, the resulting model should nevertheless provide an essential level of understanding for language theorists and implementors in their dealings with C++ and related languages. 1 Introduction The style of multiple inheritance first proposed for Simula by Krogdahl[21] and later developed into the C++ multiple inheritance system by Stroustrup[35, 15] exemplifies a particular kind of inheritance in which the underlying imperative is to maintain the integrity of subobjects. Subobjects are historically an implementation...
An Inheritance-Based Technique for Building Simulation Proofs Incrementally
- IN 22ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE
, 2000
"... This paper presents a formal technique for incremental construction of system specifications, algorithm descriptions, and simulation proofs showing that algorithms meet their specifications. The technique ..."
Abstract
-
Cited by 14 (5 self)
- Add to MetaCart
This paper presents a formal technique for incremental construction of system specifications, algorithm descriptions, and simulation proofs showing that algorithms meet their specifications. The technique
Formalizing Composable Software Systems -- A Research Agenda
, 1996
"... Flexibility is achieved in open systems by adopting software architectures that allow software components to be easily plugged in, adapted and exchanged. But open systems are generally concurrent, distributed and heterogeneous in addition to being adaptable. Ad hoc approaches to specifying compon ..."
Abstract
-
Cited by 14 (7 self)
- Add to MetaCart
Flexibility is achieved in open systems by adopting software architectures that allow software components to be easily plugged in, adapted and exchanged. But open systems are generally concurrent, distributed and heterogeneous in addition to being adaptable. Ad hoc approaches to specifying component frameworks can lead to unexpected semantic conflicts. We propose, instead, to develop a rigorous foundation for composable software systems by a series of experiments in modelling concurrent and object-based software abstractions as composable, communicating processes. Eventually we hope to identify and realize the most useful compositional idioms as a composition language for open systems specification.
Concepts of Object-Orientation
- In Proc. of the 2nd Workshop of "Informationssysteme und Kunstliche Intelligenz: Modellierung
, 1992
"... An object is a unit of structure and behavior; it has an identity which persists through change; objects communicate with each other; they are classified by object types, collected into object classes, related by inheritance, and composed to form complex objects. In the first part of the paper, this ..."
Abstract
-
Cited by 13 (10 self)
- Add to MetaCart
An object is a unit of structure and behavior; it has an identity which persists through change; objects communicate with each other; they are classified by object types, collected into object classes, related by inheritance, and composed to form complex objects. In the first part of the paper, this rich world of concepts and constructions is explained in an informal but systematic way, independent of any language or system. In the second part, features of an object specification language are outline which incorporate most of these concepts and constructions. 1 Introduction There are many languages, systems, methods and approaches in computing which call themselves "object--oriented", among them object--oriented programming languages like SmallTalk [GR83], C++ [St86] and Eiffel [Me88], object--oriented database systems like GemStone [BOS91], O 2 [De91], IRIS [Fi87] and ORION [Ki88], and object--oriented system development methods like GOOD [SS86], MOOD [Ke88] and HOOD [Hei88]. High--l...
TIGUKAT: An Object Model for Query and View Support in Object Database Systems
, 1992
"... Object-oriented computing is influencing many areas of computer science including software engineering, user interfaces, operating systems, programming languages and database systems. The appeal of object-orientation is attributed to its higher levels of abstraction for modeling real world concepts, ..."
Abstract
-
Cited by 13 (6 self)
- Add to MetaCart
Object-oriented computing is influencing many areas of computer science including software engineering, user interfaces, operating systems, programming languages and database systems. The appeal of object-orientation is attributed to its higher levels of abstraction for modeling real world concepts, its support for incremental development and its potential for interoperability. Despite many advances, object-oriented computing is still in its infancy and a universally acceptable definition of an object-oriented data model is virtually nonexistent, although some standardization efforts are underway. This report presents the TIGUKAT 1 object model definition that is the result of an investigation of object-oriented modeling features which are common among earlier proposals, along with some distinctive qualities that extend the power and expressibility of this model beyond others. The literature recognizes two perspectives of an object model: the structural view and the behavioral view. ...
Application of OOP Type Theory: State, Decidability, Integration
- In Proceedings of OOPSLA '94
, 1994
"... Important strides toward developing expressive yet semantically sound type systems for object-oriented programming languages have recently been made by Cook, Bruce, Mitchell, and others. This paper focusses on how the theoretical work using F-bounded quantification may be brought more into the realm ..."
Abstract
-
Cited by 13 (5 self)
- Add to MetaCart
Important strides toward developing expressive yet semantically sound type systems for object-oriented programming languages have recently been made by Cook, Bruce, Mitchell, and others. This paper focusses on how the theoretical work using F-bounded quantification may be brought more into the realm of actual language implementations while preserving rigorous soundness properties. We simultaneously address three of the more significant problems: adding a notion of global state, proving type-checking is decidable, and integrating the more widely implemented view that subclasses correspond to subtypes with the F-bounded view. 1 Introduction Developing expressive yet semantically sound type systems for object-oriented programming languages is a well-known and difficult research problem. Many workable solutions are possible, but there has as of yet been no universally accepted solution to the problem. To frame the problem we desire a static type system that preserves all of the classic ...

