Results 11  20
of
51
A Language for BiDirectional Tree Transformations
, 2003
"... We develop a semantic foundation and a core programming language for bidirectional transformations on treestuctured data. In one direction, these transformations, called lenses, map a complex "concrete" tree into a simplified "abstract" one; in the other, they map a modified abs ..."
Abstract

Cited by 18 (4 self)
 Add to MetaCart
(Show Context)
We develop a semantic foundation and a core programming language for bidirectional transformations on treestuctured data. In one direction, these transformations, called lenses, map a complex "concrete" tree into a simplified "abstract" one; in the other, they map a modified abstract tree, together with the original concrete tree, to a correspondingly modified concrete tree.
Coercion Completion and Conservativity in Coercive Subtyping
 ANNALS OF PURE AND APPLIED LOGIC
, 2000
"... Coercive subtyping offers a general approach to subtyping and inheritance by introducing a simple abbreviational mechanism to constructive type theories. In this paper, we study coercion completion in coercive subtyping and prove that the formal extension with coercive subtyping of a type theory suc ..."
Abstract

Cited by 17 (9 self)
 Add to MetaCart
Coercive subtyping offers a general approach to subtyping and inheritance by introducing a simple abbreviational mechanism to constructive type theories. In this paper, we study coercion completion in coercive subtyping and prove that the formal extension with coercive subtyping of a type theory such as MartinLof's type theory and UTT is a conservative extension. The importance of coherence conditions for the conservativity result is also discussed.
B.C.: On decidability of nominal subtyping with variance
"... or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must ..."
Abstract

Cited by 16 (0 self)
 Add to MetaCart
or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior
Adding type constructor parameterization to Java
 FORMAL TECHNIQUES FOR JAVALIKE PROGRAMS (FTFJP’07) AT THE EUROPEAN CONFERENCE ON OBJECTORIENTED PROGRAMMING (ECOOP
, 2007
"... We present a generalization of Java’s parametric polymorphism that enables parameterization of classes and methods by type constructors, i.e., functions from types to types. Our extension is formalized as a calculus called FGJω. It is implemented in a prototype compiler and its type system is prov ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
We present a generalization of Java’s parametric polymorphism that enables parameterization of classes and methods by type constructors, i.e., functions from types to types. Our extension is formalized as a calculus called FGJω. It is implemented in a prototype compiler and its type system is proven safe and decidable. We describe and motivate our extension through two examples: the definition of generic datatypes with binary methods and the definition of generalized algebraic datatypes. The formalization and the safety and decidability proofs are, for space reasons, only shortly described.
A Core Calculus of Classes and Objects
 ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE
, 1999
"... We present an imperative calculus for a classbased language. By introducing classes as the basic objectoriented construct in a calculus with records and references, we obtain a system with an intuitive operational semantics. Objects are instantiated from classes and represented by records. The ty ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
(Show Context)
We present an imperative calculus for a classbased language. By introducing classes as the basic objectoriented construct in a calculus with records and references, we obtain a system with an intuitive operational semantics. Objects are instantiated from classes and represented by records. The type system for objects uses only functional, record, and reference types, and there is a clean separation between subtyping and inheritance. We demonstrate that the calculus is sound and suciently expressive to model advanced language features such as inheritance with method rede nition, multilevel encapsulation, and modular object construction.
Towards equal rights for higherkinded types
 6TH INTERNATIONAL WORKSHOP ON MULTIPARADIGM PROGRAMMING WITH LANGUAGES AT THE EUROPEAN CONFERENCE ON OBJECTORIENTED PROGRAMMING (ECOOP
, 2007
"... Generics are a very popular feature of contemporary OO languages, such as Java, C # or Scala. Their support for genericity is lacking, however. The problem is that they only support abstracting over proper types, and not over generic types. This limitation makes it impossible to, e.g., define a pre ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Generics are a very popular feature of contemporary OO languages, such as Java, C # or Scala. Their support for genericity is lacking, however. The problem is that they only support abstracting over proper types, and not over generic types. This limitation makes it impossible to, e.g., define a precise interface for Iterable, a core abstraction in Scala’s collection API. We implemented “type constructor polymorphism” in Scala 2.5, which solves this problem at the root, thus greatly reducing the duplication of type signatures and code.
Type Destructors
, 1998
"... We study a variant of System F that integrates and generalizes several existing proposals for calculi with structural typing rules. To the usual type constructors (!, \Theta, All, Some, Rec) we add a number of type destructors, each internalizing a useful fact about the subtyping relation. For exa ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
We study a variant of System F that integrates and generalizes several existing proposals for calculi with structural typing rules. To the usual type constructors (!, \Theta, All, Some, Rec) we add a number of type destructors, each internalizing a useful fact about the subtyping relation. For example, in F with products every closed subtype of a product S\ThetaT must itself be a product S 0 \ThetaT 0 with S 0 !:S and T 0 !:T. We internalise this observation by introducing type destructors .1 and .2 and postulating an equivalence T = j T.1\ThetaT.2 whenever T !: U\ThetaV (including, for example, when T is a variable). In other words, every subtype of a product type literally is a product type, modulo jconversion. Adding type destructors provides a clean solution to the problem of polymorphic update without introducing new term formers, new forms of polymorphism, or quantification over type operators. We illustrate this by giving elementary presentations of two wellknown e...
Bounded Quantification with Bottom
 Computer Science Department, Indiana University
, 1997
"... While numerous extensions of Cardelli and Wegner's calculus of polymorphism and subtyping, Kernel Fun, have been studied during the past decade, one quite simple one has received little attention: the addition of a minimal type Bot, dual to the familiar maximal type Top. We develop basic metat ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
While numerous extensions of Cardelli and Wegner's calculus of polymorphism and subtyping, Kernel Fun, have been studied during the past decade, one quite simple one has received little attention: the addition of a minimal type Bot, dual to the familiar maximal type Top. We develop basic metatheory for this extension. Although most of the usual properties of Kernel Fun (existence of meets and joins, decidability of subtyping and typing, subject reduction, etc.) also hold for the extended system, the presence of Bot introduces some surprising intricacies. In particular, a type variable bounded by Bot is actually a synonym for Bot; such "bottom variables" must be treated specially at several points. 1 Introduction The typed lambdacalculus Kernel Fun [CW85] and its wilder sibling, F [CG92, Ghe90, CMMS94] have become standard tools for the foundational study of programming languages combining subtyping and impredicative polymorphism. Their syntax and semantics have been investigated in ...
A Type System for Record Concatenation and Subtyping
, 1996
"... We define an extension of a secondorder type system with records, subtyping and record concatenation. This system can model the most important concepts of objectoriented languages. The novelty in our approach is that concatenation is only permitted if the types on common fields agree. We give exam ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
We define an extension of a secondorder type system with records, subtyping and record concatenation. This system can model the most important concepts of objectoriented languages. The novelty in our approach is that concatenation is only permitted if the types on common fields agree. We give examples of how objectoriented concepts can be modeled and show how the system can be translated to a type system without subtyping.
A Predicative TypeTheoretic Interpretation of Objects
, 1997
"... Predicative type theories are powerful tools for giving foundational interpretations of programming languages. Due to their explicit inductive construction, predicative type theories have multiple mathematical models that provide precise definitions of programming language features. However, not all ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
(Show Context)
Predicative type theories are powerful tools for giving foundational interpretations of programming languages. Due to their explicit inductive construction, predicative type theories have multiple mathematical models that provide precise definitions of programming language features. However, not all features have predicative interpretations, and current interpretations of objects rely on impredicative type theories, such as Girard's System F, because of the difficulty in specifying a type for objects in the presence of selfapplication. In this paper we show that objects have a predicative interpretation. We show that predicativity is associated with method monotonicity, and that binary methods prevent the inductive type construction. Our interpretation differs from impredicative accounts by replacing the use of recursive types for objects with conditions for method polymorphism over the self type. We further give a propositional meaning to objects in the type theory, providing a calc...