Results 11  20
of
77
Practical RefinementType Checking
, 1997
"... Refinement types allow many more properties of programs to be expressed and statically checked than conventional type systems. We present a practical algorithm for refinementtype checking in a calculus enriched with refinementtype annotations. We prove that our basic algorithm is sound and comple ..."
Abstract

Cited by 37 (1 self)
 Add to MetaCart
Refinement types allow many more properties of programs to be expressed and statically checked than conventional type systems. We present a practical algorithm for refinementtype checking in a calculus enriched with refinementtype annotations. We prove that our basic algorithm is sound and complete, and show that every term which has a refinement type can be annotated as required by our algorithm. Our positive experience with an implementation of an extension of this algorithm to the full core language of Standard ML demonstrates that refinement types can be a practical program development tool in a realistic programming language. The required refinement type definitions and annotations are not much of a burden and serve as formal, machinechecked explanations of code invariants which otherwise would remain implicit. 1 Introduction The advantages of staticallytyped programming languages are well known, and have been described many times (e.g. see [Car97]). However, conventional ty...
Typed Compilation of Inclusive Subtyping
 In 2000 ACM SIGPLAN International Conference on Functional Programming
, 2000
"... I present a typepreserving translation that eliminates subtyping and bounded quantification without introducing any runtime costs. This translation is based on Mitchell and Pierce's encoding of bounded quantification using intersection types. I show that, previous negative observations notwit ..."
Abstract

Cited by 30 (2 self)
 Add to MetaCart
(Show Context)
I present a typepreserving translation that eliminates subtyping and bounded quantification without introducing any runtime costs. This translation is based on Mitchell and Pierce's encoding of bounded quantification using intersection types. I show that, previous negative observations notwithstanding, the encoding is adequate given a sufficiently rich target type theory. The necessary target type theory is made easily typecheckable by including a collection of explicit coercion combinators, which are already desired for eliminating subtyping. However, no form of coercion abstraction is necessary (even to support bounded quantification) , leading to a simple target language. 1 Introduction Typepreserving compilers, those that utilize strongly typed intermediate languages, offer several compelling advantages over untyped compilers. A typed compiler can utilize type information to enable optimizations that would otherwise be prohibitively difficult or impossible. Internal type check...
Normalization Results for Typeable Rewrite Systems
, 1997
"... In this paper we introduce Curryfied Term Rewriting Systems, and a notion of partial type assignment on terms and rewrite rules that uses intersection types with sorts and !. Three operations on types  substitution, expansion, and lifting  are used to define type assignment, and are proved to be ..."
Abstract

Cited by 30 (26 self)
 Add to MetaCart
In this paper we introduce Curryfied Term Rewriting Systems, and a notion of partial type assignment on terms and rewrite rules that uses intersection types with sorts and !. Three operations on types  substitution, expansion, and lifting  are used to define type assignment, and are proved to be sound. With this result the system is proved closed for reduction. Using a more liberal approach to recursion, we define a general scheme for recursive definitions and prove that, for all systems that satisfy this scheme, every term typeable without using the typeconstant ! is strongly normalizable. We also show that, under certain restrictions, all typeable terms have a (weak) headnormal form, and that terms whose type does not contain ! are normalizable.
An Algebraic Semantics of Subobjects
 In Proceedings of the Tenth Annual Conference on ObjectOriented 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 nonvirtual methods. By abstracting the ..."
Abstract

Cited by 21 (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 nonvirtual 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...
HigherOrder Intersection Types and Multiple Inheritance
, 1995
"... this paper was completed, the metatheory of this system has been studied in much greater detail by Compagnoni [ Compagnoni, 1994, Compagnoni, 1995 ] . A type system combining intersection types with a powerful form of polymorphism is of independent interest. Reynolds [ 1988 ] has argued that interse ..."
Abstract

Cited by 19 (7 self)
 Add to MetaCart
this paper was completed, the metatheory of this system has been studied in much greater detail by Compagnoni [ Compagnoni, 1994, Compagnoni, 1995 ] . A type system combining intersection types with a powerful form of polymorphism is of independent interest. Reynolds [ 1988 ] has argued that intersection types can form the basis of elegant language designs. But his Forsythe language has only a firstorder type system, and thus lacks some of the expressive possibilities of polymorphic languages like ML. Our work represents a step toward a synthesis of these styles of language design. The following section shows some examples of multiple inheritance using a simple highlevel syntax. Section 3, the core of the paper, defines the calculus F
Partial Intersection Type Assignment in Applicative Term Rewriting Systems
 Proceedings of TLCA '93. International Conference on Typed Lambda Calculi and Applications, Utrecht, The Netherlands, volume 664 of Lecture Notes in Computer Science
, 1993
"... This paper introduces a notion of partial type assignment on applicative term rewriting systems that is based on a combination of an essential intersection type assignment system, and the type assignment system as defined for ML [16], both extensions of Curry's type assignment system [11]. Te ..."
Abstract

Cited by 17 (14 self)
 Add to MetaCart
(Show Context)
This paper introduces a notion of partial type assignment on applicative term rewriting systems that is based on a combination of an essential intersection type assignment system, and the type assignment system as defined for ML [16], both extensions of Curry's type assignment system [11]. Terms and rewrite rules will be written as trees, and type assignment will consists of assigning intersection types function symbols, and specifying the way in which types can be assigned to nodes and edges between nodes. The only constraints on this system are local: they are imposed by the relation between the type assigned to a node and those assigned to its incoming and outgoing edges. In general, given an arbitrary typeable applicative term rewriting system, the subject reduction property does not hold. We will formulate a sufficient but undecidable condition typeable rewrite rules should satisfy in order to obtain this property. Introduction In the recent years several paradigms hav...
Modeling Subobjectbased Inheritance
, 1996
"... : A model of subobjects and subobject selection gives us a concise expression of key semantic relationships in a variety of inheritancebased 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 17 (1 self)
 Add to MetaCart
: A model of subobjects and subobject selection gives us a concise expression of key semantic relationships in a variety of inheritancebased 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 Subobjectbased 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....
Characterizing Convergent Terms in Object Calculi via Intersection Types
"... We give a simple characterization of convergent terms in Abadi and Cardelli untyped Object Calculus (&calculus) via intersection types. We consider a calculus with records and its intersection type assignment system. We prove that convergent terms are characterized by their types. The cha ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
We give a simple characterization of convergent terms in Abadi and Cardelli untyped Object Calculus (&calculus) via intersection types. We consider a calculus with records and its intersection type assignment system. We prove that convergent terms are characterized by their types. The characterization is then inherited by the object calculus via selfapplication interpretation.
A Type System for Computer Algebra
 Journal of Symbolic Computation
, 1994
"... ing RationalFun from Rational yields a higher order type operator that, given a specification, forms the type of objects that satisfy it. Philip Santas DeclareDomain := (Fun: Type?Category) +? (((Rep: Type) +? with(Rep,Fun(Rep))) SomeRep) The type of Rational objects can now be expressed by applyi ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
ing RationalFun from Rational yields a higher order type operator that, given a specification, forms the type of objects that satisfy it. Philip Santas DeclareDomain := (Fun: Type?Category) +? (((Rep: Type) +? with(Rep,Fun(Rep))) SomeRep) The type of Rational objects can now be expressed by applying the DeclareDomain constructor to the specification RationalFun: Rational := DeclareDomain(RationalFun) or the shortcut: Rational : RationalFun In order to give proper treatment to the interaction between representations and subtyping, it is necessary to separate Rational into the specifications of its functions and the operators which capture the common structure of all object types. This separation is also important for the semantical construction of categories and the definition of the internal structures of the types. 2.1. Multiple Representations Rationals are created using the function box, which captures the semantics of dynamic objects in object oriented programming.A rational...
A Formal Foundation for Concurrent Object Oriented Programming
 PROGRAMMING, DISSERTATION, TECHNISCHE UNIVERSITAT MUNCHEN
, 1995
"... In this thesis we develop a novel, implicitly typed lambdacalculus for objects, by viewing these as extendible casefunctions rather than as extendible records. This ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
(Show Context)
In this thesis we develop a novel, implicitly typed lambdacalculus for objects, by viewing these as extendible casefunctions rather than as extendible records. This