Results 1  10
of
33
A Behavioral Notion of Subtyping
 ACM Transactions on Programming Languages and Systems
, 1994
"... The use of hierarchy is an important component of objectoriented design. Hierarchy allows the use of type families, in which higher level supertypes capture the behavior that all of their subtypes have in common. For this methodology to be effective, it is necessary to have a clear understanding of ..."
Abstract

Cited by 516 (18 self)
 Add to MetaCart
The use of hierarchy is an important component of objectoriented design. Hierarchy allows the use of type families, in which higher level supertypes capture the behavior that all of their subtypes have in common. For this methodology to be effective, it is necessary to have a clear understanding of how subtypes and supertypes are related. This paper takes the position that the relationship should ensure that any property proved about supertype objects also holds for its subtype objects. It presents two ways of defining the subtype relation, each of which meets this criterion, and each of which is easy for programmers to use. The subtype relation is based on the specifications of the sub and supertypes; the paper presents a way of specifying types that makes it convenient to define the subtype relation. The paper also discusses the ramifications of this notion of subtyping on the design of type families.
Inheritance As Implicit Coercion
 Information and Computation
, 1991
"... . We present a method for providing semantic interpretations for languages with a type system featuring inheritance polymorphism. Our approach is illustrated on an extension of the language Fun of Cardelli and Wegner, which we interpret via a translation into an extended polymorphic lambda calculus. ..."
Abstract

Cited by 131 (4 self)
 Add to MetaCart
(Show Context)
. We present a method for providing semantic interpretations for languages with a type system featuring inheritance polymorphism. Our approach is illustrated on an extension of the language Fun of Cardelli and Wegner, which we interpret via a translation into an extended polymorphic lambda calculus. Our goal is to interpret inheritances in Fun via coercion functions which are definable in the target of the translation. Existing techniques in the theory of semantic domains can be then used to interpret the extended polymorphic lambda calculus, thus providing many models for the original language. This technique makes it possible to model a rich type discipline which includes parametric polymorphism and recursive types as well as inheritance. A central difficulty in providing interpretations for explicit type disciplines featuring inheritance in the sense discussed in this paper arises from the fact that programs can typecheck in more than one way. Since interpretations follow the type...
A Generic Model for 3Dimensional Conceptual Modelling
 Data & Knowledge Engineering
, 2004
"... This article discusses two highly intertwined issues. Firstly, we discuss the lack of topdown abstraction mechanisms in data modelling techniques; i.e. abstraction techniques that are fully integrated into the modelling technique and methodology and not just a `postmodelling process' add on ..."
Abstract

Cited by 21 (15 self)
 Add to MetaCart
This article discusses two highly intertwined issues. Firstly, we discuss the lack of topdown abstraction mechanisms in data modelling techniques; i.e. abstraction techniques that are fully integrated into the modelling technique and methodology and not just a `postmodelling process' add on. Secondly, we are concerned with the integration of objectoriented modelling techniques and traditional data modelling techniques.
Weak Behavioral Subtyping for Types with Mutable Objects
 MATHEMATICAL FOUNDATIONS OF PROGRAMMING SEMANTICS, ELEVENTH ANNUAL CONFERENCE, VOLUME 1 OF ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE
, 1994
"... This paper studies the question of when one abstract data type (ADT) is a behavioral subtype of another, and proposes a modeltheoretic notion of ... ..."
Abstract

Cited by 19 (11 self)
 Add to MetaCart
This paper studies the question of when one abstract data type (ADT) is a behavioral subtype of another, and proposes a modeltheoretic notion of ...
EVORM: A Conceptual Modelling Technique for Evolving Application Domains
, 1994
"... In this paper we present EVORM, a data modelling technique for evolving application domains. EVORM is the result of applying a general theory for the evolution of application domains to the object role modelling technique PSM, a generalisation of ER, EER, FORM and NIAM. First the general theory i ..."
Abstract

Cited by 18 (15 self)
 Add to MetaCart
In this paper we present EVORM, a data modelling technique for evolving application domains. EVORM is the result of applying a general theory for the evolution of application domains to the object role modelling technique PSM, a generalisation of ER, EER, FORM and NIAM. First the general theory is presented. This theory describes a general approach to the evolution of application domains, abstracting from details of specific modelling techniques. This theory makes a distinction between the underlying information structure and its evolution on the one hand, and the description and semantics of operations on the information structure and its population on the other hand. Main issues within this theory are object typing, type relatedness and identification of objects. After a (short) introduction to PSM, this general theory is applied, resulting in EVORM. Besides having a right of its own, the usefulness of the general theory is demonstrated by interpreting its abstract results,...
A General Theory for the Evolution of Application Models
, 1995
"... In this article we focus on evolving information systems. First a delimitation of the concept of evolution is provided, resulting in a first attempt to a general theory for such evolutions. The theory ..."
Abstract

Cited by 18 (14 self)
 Add to MetaCart
In this article we focus on evolving information systems. First a delimitation of the concept of evolution is provided, resulting in a first attempt to a general theory for such evolutions. The theory
Concepts of Behavioral Subtyping and a Sketch of their Extension to ComponentBased Systems
, 2000
"... Objectoriented systems are able to treat objects indirectly by message passing. This allows them to manipulate objects without knowing their exact runtime type. Behavioral subtyping helps one reason in a modular fashion about such programs. That is, one can reason based on the static types of expre ..."
Abstract

Cited by 17 (6 self)
 Add to MetaCart
Objectoriented systems are able to treat objects indirectly by message passing. This allows them to manipulate objects without knowing their exact runtime type. Behavioral subtyping helps one reason in a modular fashion about such programs. That is, one can reason based on the static types of expressions in a program, provided that static types are upper bounds of the runtime types in a subtyping preorder, and that subtypes satisfy the conditions of behavioral subtyping. We survey various notions of behavioral subtyping proposed in the literature for objectoriented programming. We also sketch a notion of behavioral subtyping for objects in componentbased systems, where reasoning about the events that a component can raise is important.
Querying Source Code using an Algebraic Query Language
 In Proceedings of the International Conference on Software Maintenance
, 1994
"... Querying and analyzing source code interactively is a critical task in reverse engineering and program understanding. Current source code query systems lack sufficient formalism and offer limited query capabilities. In this paper, we introduce the formal framework of Source Code Algebra (SCA), and o ..."
Abstract

Cited by 14 (0 self)
 Add to MetaCart
(Show Context)
Querying and analyzing source code interactively is a critical task in reverse engineering and program understanding. Current source code query systems lack sufficient formalism and offer limited query capabilities. In this paper, we introduce the formal framework of Source Code Algebra (SCA), and outline a source code query system based on it. SCA provides a formal data model for source code, an algebraic expressionbased query language, and opportunities for query optimization. An algebraic model of source code addresses the issues of conceptual integrity, expressive power, and performance of a source code query system within a unified framework. Keywords: Reverse engineering, source code query, query language, manysorted algebra. 1 Overview The answers are in the source code. Mark Weiser, in Source Code [28]. Software reverse engineering, code reengineering, and program understanding have begun to emerge as the latest challenges in the field of software engineering. Interest in ...
Supporting Queries on Source Code: A Formal Framework
 International Journal of Software Engineering and Knowledge Engineering
, 1994
"... Querying source code interactively for information is a critical task in reverse engineering of software. However, current source code query systems succeed in handling only small subsets of the wide range of queries possible on code, trading generality and expressive power for ease of implementatio ..."
Abstract

Cited by 14 (1 self)
 Add to MetaCart
Querying source code interactively for information is a critical task in reverse engineering of software. However, current source code query systems succeed in handling only small subsets of the wide range of queries possible on code, trading generality and expressive power for ease of implementation and practicality. We attribute this to the absence of clean formalisms for modeling and querying source code. In this paper, we present an algebraic framework (Source Code Algebra or SCA) for modeling and querying source code. The framework forms the basis of our query system for C source code. An analogy can be drawn with relational algebra, which forms the basis for relational databases. The benefits of using SCA include the integration of structural and flow information into a single source code data model, the ability to process highlevel source code queries (commandline, graphical, relational, or patternbased) by translating them into SCA expressions which can be evaluated using th...
Typed Homomorphic Relations Extended with Subtypes
 Mathematical Foundations of Programming Semantics '91
, 1991
"... Typed homomorphic relations on heterogeneous algebras are generalized to allow relationships between elements in the carrier sets of different types. Such relations are needed for the model theory of incomplete, hierarchical specifications with subtypes. Typed logical relations are generalized simil ..."
Abstract

Cited by 14 (9 self)
 Add to MetaCart
(Show Context)
Typed homomorphic relations on heterogeneous algebras are generalized to allow relationships between elements in the carrier sets of different types. Such relations are needed for the model theory of incomplete, hierarchical specifications with subtypes. Typed logical relations are generalized similarly. These tools help give a simple modeltheoretic account of subtyping among abstract data types as observed by terms of a simplytyped lambdacalculus with subtypes. 1 Introduction Program transformation and optimization are concerned with relationships among programs and program parts such as expressions. In a typed programming language, attention is typically restricted to relationships that hold among expressions of the same type. For example, in the study of the typed lambda calculus, one considers only equations between terms of the same type. Logical relations among models of the typed lambda calculus are families of relations indexed by type, so that elements of type T in one mod...