Results 1  10
of
79
A Calculus for Overload Functions with Subtyping

, 1992
"... We present a simple extension of typed calculus where functions can be overloaded by putting different "branches of code" together. When the function is applied, the branch to execute is chosen according to a particular selection rule which depends on the type of the argument. The cru ..."
Abstract

Cited by 153 (26 self)
 Add to MetaCart
We present a simple extension of typed calculus where functions can be overloaded by putting different "branches of code" together. When the function is applied, the branch to execute is chosen according to a particular selection rule which depends on the type of the argument. The crucial feature of the present approach is that the branch selection depends on the "runtime type" of the argument, which may differ from its compiletime type, because of the existence of a subtyping relation among types. Hence overloading cannot be eliminated by a static analysis of code, but is an essential feature to be dealt with during computation. We obtain in this way a typedependent calculus, which differs from the various calculi where types do not play any role during computation. We prove Confluence and a generalized SubjectReduction theorem for this calculus. We prove Strong Normalization for a "stratified" subcalculus. The definition of this calculus is guided by the understand...
Linearity, Sharing and State: a fully abstract game semantics for Idealized Algol with active expressions
 ALGOLLIKE LANGUAGES
, 1997
"... The manipulation of objects with state which changes over time is allpervasive in computing. Perhaps the simplest example of such objects are the program variables of classical imperative languages. An important strand of work within the study of such languages, pioneered by John Reynolds, focusses ..."
Abstract

Cited by 130 (21 self)
 Add to MetaCart
The manipulation of objects with state which changes over time is allpervasive in computing. Perhaps the simplest example of such objects are the program variables of classical imperative languages. An important strand of work within the study of such languages, pioneered by John Reynolds, focusses on "Idealized Algol", an elegant synthesis of imperative and functional features. We present a novel semantics for Idealized Algol using games, which is quite unlike traditional denotational models of state. The model takes into account the irreversibility of changes in state, and makes explicit the difference between copying and sharing of entities. As a formal measure of the accuracy of our model, we obtain a full abstraction theorem for Idealized Algol with active expressions.
Semantic Reference Systems
 International Journal of Geographical Information Science
, 2003
"... The analogy of Semantic Reference Systems proposed in (Kuhn in press) is being explored here with respect to the computational mechanisms it suggests. Semantic referencing, grounding in a semantic datum, semantic projection, and semantic transformation are defined and demonstrated through an impleme ..."
Abstract

Cited by 75 (16 self)
 Add to MetaCart
(Show Context)
The analogy of Semantic Reference Systems proposed in (Kuhn in press) is being explored here with respect to the computational mechanisms it suggests. Semantic referencing, grounding in a semantic datum, semantic projection, and semantic transformation are defined and demonstrated through an implementation of a semantic reference system for a simple vehicle navigation model. The idea of wrapping legacy data or services is shown to correspond to semantic referencing, which suggests a straightforward procedure to derive wrappers from semantic reference systems. 1.
A semantic basis for Quest
 JOURNAL OF FUNCTIONAL PROGRAMMING
, 1991
"... Quest is a programming language based on impredicative type quantifiers and subtyping within a threelevel structure of kinds, types and type operators, and values. The semantics of Quest is rather challenging. In particular, difficulties arise when we try to model simultaneously features such as c ..."
Abstract

Cited by 70 (13 self)
 Add to MetaCart
Quest is a programming language based on impredicative type quantifiers and subtyping within a threelevel structure of kinds, types and type operators, and values. The semantics of Quest is rather challenging. In particular, difficulties arise when we try to model simultaneously features such as contravariant function spaces, record types, subtyping, recursive types, and fixpoints. In this paper we describe in detail the type inference rules for Quest, and we give them meaning using a partial equivalence relation model of types. Subtyping is interpreted as in previous work by Bruce and Longo, but the interpretation of some aspects, namely subsumption, power kinds, and record subtyping, is novel. The latter is based on a new encoding of record types. We concentrate on modeling quantifiers and subtyping; recursion is the subject of current work.
A Calculus of Transition Systems (towards Universal Coalgebra)
 In Alban Ponse, Maarten de Rijke, and Yde Venema, editors, Modal Logic and Process Algebra, CSLI Lecture Notes No
, 1995
"... By representing transition systems as coalgebras, the three main ingredients of their theory: coalgebra, homomorphism, and bisimulation, can be seen to be in a precise correspondence to the basic notions of universal algebra: \Sigmaalgebra, homomorphism, and substitutive relation (or congruence). ..."
Abstract

Cited by 28 (1 self)
 Add to MetaCart
By representing transition systems as coalgebras, the three main ingredients of their theory: coalgebra, homomorphism, and bisimulation, can be seen to be in a precise correspondence to the basic notions of universal algebra: \Sigmaalgebra, homomorphism, and substitutive relation (or congruence). In this paper, some standard results from universal algebra (such as the three isomorphism theorems and facts on the lattices of subalgebras and congruences) are reformulated (using the afore mentioned correspondence) and proved for transition systems. AMS Subject Classification (1991): 68Q10, 68Q55 CR Subject Classification (1991): D.3.1, F.1.2, F.3.2 Keywords & Phrases: Transition system, bisimulation, universal coalgebra, universal algebra, congruence, homomorphism. Note: This paper will appear in `Modal Logic and Process Algebra', edited by Ponse, De Rijke and Venema [PRV95]. 2 Table of Contents 1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ...
Specification Structures and PropositionsasTypes for Concurrency
 Logics for Concurrency: Structure vs. AutomataProceedings of the VIIIth Banff Higher Order Workshop, volume 1043 of Lecture Notes in Computer Science
, 1995
"... Many different notions of "property of interest" and methods of verifying such properties arise naturally in programming. A general framework of "Specification Structures" is presented for combining different notions and methods in a coherent fashion. This is then applied to c ..."
Abstract

Cited by 23 (5 self)
 Add to MetaCart
(Show Context)
Many different notions of "property of interest" and methods of verifying such properties arise naturally in programming. A general framework of "Specification Structures" is presented for combining different notions and methods in a coherent fashion. This is then applied to concurrency in the setting of Interaction Categories.
One Step up the Abstraction Ladder: Combining Algebras  From Functional Pieces to a Whole
, 1999
"... ion Ladder: Combining Algebras  From Functional Pieces to a Whole Andrew U. Frank Department of Geoinformation Technical University Vienna Gusshausstr. 2729, A1040 Vienna, Austria frank@geoinfo,tuwien.ac.at Abstract. A fundamental scientific question today is how to construct complex syste ..."
Abstract

Cited by 20 (5 self)
 Add to MetaCart
(Show Context)
ion Ladder: Combining Algebras  From Functional Pieces to a Whole Andrew U. Frank Department of Geoinformation Technical University Vienna Gusshausstr. 2729, A1040 Vienna, Austria frank@geoinfo,tuwien.ac.at Abstract. A fundamental scientific question today is how to construct complex systems from simple parts. Science today seems mostly to analyze limited pieces of the puzzle; the combination of these pieces to form a whole is left for later or others. The lack of efficient methods to deal with the combination problem is likely the main reason. How to combine individual results is a dominant question in cognitive science or geography, where phenomena are studied from individuals and at different scales, but the results cannot be brought together. This paper proposes to use parameterized algebras much the same way that we use functional abstraction (procedures in programming languages) to create abstract building blocks which can be combined later. Algebras group oper...
A Resumption Monad Transformer and its Applications in the Semantics of Concurrency
, 2001
"... Resumptions are a valuable tool in the analysis and design of semantic models for concurrent programming languages, in which computations consist of sequences of atomic steps that may be interleaved. In this paper we consider a general notion of resumption, parameterized by the kind of computations ..."
Abstract

Cited by 20 (0 self)
 Add to MetaCart
Resumptions are a valuable tool in the analysis and design of semantic models for concurrent programming languages, in which computations consist of sequences of atomic steps that may be interleaved. In this paper we consider a general notion of resumption, parameterized by the kind of computations that take place in the atomic steps. We define a monad transformer which, given a monad M that represents the atomic computations, constructs a monad R(M) for interleaved computations. Moreover, we use this monad transformer to define the denotational semantics of a simple imperative language supporting nondeterminism and concurrency.
The Genericity Theorem and the Notion of Parametricity in the Polymorphic lambdacalculus
 THEORETICAL COMPUTER SCIENCE
, 1992
"... In the polymorphic calculus, one may explicitly define functions that take a type as input and return a term as output. This work focuses on how such functions depend on their input types. Indeed, these functions are generally understood to have an essentially constant meaning on input types. We sh ..."
Abstract

Cited by 15 (5 self)
 Add to MetaCart
In the polymorphic calculus, one may explicitly define functions that take a type as input and return a term as output. This work focuses on how such functions depend on their input types. Indeed, these functions are generally understood to have an essentially constant meaning on input types. We show how the proof theory of the polymorphic calculus suggests a clear syntactic description of this phenomenon. Namely, under a reasonable condition, we show that if two polymorphic functions agree on an input type, then they are, in fact, the same function. Equivalently, types are generic inputs to polymorphic functions. R esum e Dans le calcul polymorphe, on peut explicitement definir des fonctions qui prennent un type comme argument et qui renvoient un terme comme resultat. Le but de ce travail est de mieux comprendre la dependance de ces fonctions visavis de leurs arguments types. En effet, ces fonctions sont generalement considerees comme etant essentiellement constantes par rapport ...
Datastructure Rewriting
, 2005
"... We tackle the problem of datastructure rewriting including pointer redirections. We propose two basic rewrite steps: (i) Local Redirection and Replacement steps the aim of which is redirecting specific pointers determined by means of a pattern, as well as adding new information to an existing data; ..."
Abstract

Cited by 14 (3 self)
 Add to MetaCart
We tackle the problem of datastructure rewriting including pointer redirections. We propose two basic rewrite steps: (i) Local Redirection and Replacement steps the aim of which is redirecting specific pointers determined by means of a pattern, as well as adding new information to an existing data; and (ii) Global Redirection steps which are aimed to redirect all pointers targeting a node towards another one. We define these two rewriting steps following the double pushout approach. We define first the category of graphs we consider and then define rewrite rules as pairs of graph homomorphisms of the form L ← K → R. Unfortunately, inverse pushouts (complement pushouts) are not unique in our setting and pushouts do not always exist. Therefore, we define rewriting steps so that a rewrite rule can always be performed once a matching is found.