Results 1  10
of
16
Programming with Intersection Types and Bounded Polymorphism
, 1991
"... representing the official policies, either expressed or implied, of the U.S. Government. ..."
Abstract

Cited by 67 (4 self)
 Add to MetaCart
representing the official policies, either expressed or implied, of the U.S. Government.
Decidability of HigherOrder Subtyping with Intersection Types
 University of Edinburgh, LFCS
, 1994
"... The combination of higherorder subtyping with intersection types yields a typed model of objectoriented programming with multiple inheritance [11]. The target calculus, F ! , a natural generalization of Girard's system F ! with intersection types and bounded polymorphism, is of independent i ..."
Abstract

Cited by 40 (11 self)
 Add to MetaCart
The combination of higherorder subtyping with intersection types yields a typed model of objectoriented programming with multiple inheritance [11]. The target calculus, F ! , a natural generalization of Girard's system F ! with intersection types and bounded polymorphism, is of independent interest, and is our subject of study. Our main contribution is the proof that subtyping in F ! is decidable. This yields as a corollary the decidability of subtyping in F ! , its intersection free fragment, because the F ! subtyping system is a conservative extension of that of F ! . The calculus presented in [8] has no reductions on types. In the F ! subtyping system the presence of ficonversion  an extension of ficonversion with distributivity laws  drastically increases the complexity of proving the decidability of the subtyping relation. Our proof consists of, firstly, defining an algorithmic presentation of the subtyping system of F ! , secondly, proving that th...
Syntactic Control of Interference Revisited
, 1995
"... In "Syntactic Control of Interference" (POPL, 1978), J. C. Reynolds proposes three design principles intended to constrain the scope of imperative state effects in Algollike languages. The resulting linguistic framework seems to be a very satisfactory way of combining functional and imperative conc ..."
Abstract

Cited by 40 (6 self)
 Add to MetaCart
In "Syntactic Control of Interference" (POPL, 1978), J. C. Reynolds proposes three design principles intended to constrain the scope of imperative state effects in Algollike languages. The resulting linguistic framework seems to be a very satisfactory way of combining functional and imperative concepts, having the desirable attributes of both purely functional languages (such as pcf) and simple imperative languages (such as the language of while programs). However, Reynolds points out that the "obvious" syntax for interference control has the unfortunate property that fireductions do not always preserve typings. Reynolds has subsequently presented a solution to this problem (ICALP, 1989), but it is fairly complicated and requires intersection types in the type system. Here, we present a much simpler solution which does not require intersection types. We first describe a new type system inspired in part by linear logic and verify that reductions preserve typings. We then define a class...
Intersection Types and Bounded Polymorphism
, 1996
"... this paper (Compagnoni, Intersection Types and Bounded Polymorphism 3 1994; Compagnoni, 1995) has been used in a typetheoretic model of objectoriented multiple inheritance (Compagnoni & Pierce, 1996). Related calculi combining restricted forms of intersection types with higherorder polymorphism ..."
Abstract

Cited by 37 (0 self)
 Add to MetaCart
this paper (Compagnoni, Intersection Types and Bounded Polymorphism 3 1994; Compagnoni, 1995) has been used in a typetheoretic model of objectoriented multiple inheritance (Compagnoni & Pierce, 1996). Related calculi combining restricted forms of intersection types with higherorder polymorphism and dependent types have been studied by Pfenning (Pfenning, 1993). Following a more detailed discussion of the pure systems of intersections and bounded quantification (Section 2), we describe, in Section 3, a typed calculus called F ("Fmeet ") integrating the features of both. Section 4 gives some examples illustrating this system's expressive power. Section 5 presents the main results of the paper: a prooftheoretic analysis of F 's subtyping and typechecking relations leading to algorithms for checking subtyping and for synthesizing minimal types for terms. Section 6 discusses semantic aspects of the calculus, obtaining a simple soundness proof for the typing rules by interpreting types as partial equivalence relations; however, another prooftheoretic result, the nonexistence of least upper bounds for arbitrary pairs of types, implies that typed models may be more difficult to construct. Section 7 offers concluding remarks. 2. Background
From CML to its Process Algebra
 Theoretical Computer Science
"... Reppy's language CML extends Standard ML of Milner et al. with primitives for communication. It thus inherits a notion of strong polymorphic typing and may be equipped with a structural operational semantics. As a first step we formulate an effect system for statically expressing the communication b ..."
Abstract

Cited by 36 (6 self)
 Add to MetaCart
Reppy's language CML extends Standard ML of Milner et al. with primitives for communication. It thus inherits a notion of strong polymorphic typing and may be equipped with a structural operational semantics. As a first step we formulate an effect system for statically expressing the communication behaviours of CML programs as these are not reflected in the types. As a second step we adapt the structural operational semantics of CML so as to incorporate behaviours. We then show how types and behaviours evolve in the course of computation: types may decrease and behaviours may lose prefixes as well as decrease. As the syntax of behaviours is rather similar to that of a process algebra our main result may therefore be viewed as regarding the semantics of a process algebra as an abstraction of the semantics of an underlying programming language. This establishes a new kind of connection between "realistic" concurrent programming languages and "theoretical" process algebras. 1 Introduction...
A Model for Syntactic Control of Interference
 MATHEMATICAL STRUCTURES IN COMPUTER SCIENCE
, 1993
"... Two imperative programming language phrases interfere when one writes to a storage variable that the other reads from or writes to. Reynolds has described an elegant linguistic approach to controlling interference in which a refinement of typed calculus is used to limit sharing of storage variables; ..."
Abstract

Cited by 19 (4 self)
 Add to MetaCart
Two imperative programming language phrases interfere when one writes to a storage variable that the other reads from or writes to. Reynolds has described an elegant linguistic approach to controlling interference in which a refinement of typed calculus is used to limit sharing of storage variables; in particular, different identifiers are required never to interfere. This paper examines semantic foundations of the approach. We describe a category that has (an abstraction of) interference information built into all objects and maps. This information is used to define a “tensor” product whose components are required never to interfere. Environments are defined using the tensor, and procedure types are obtained via a suitable adjunction. The category is a model of intuitionistic linear logic. Reynolds’ concept of passive type – i.e. types for phrases that don’t write to any storage variables – is shown to be closely related, in this model, to Girard’s “of course” modality.
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 17 (6 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
Multiple Inheritance via Intersection Types
 UNIVERSITY OF EDINBURGH
, 1993
"... Combining intersection types with higherorder subtyping yields a typed model of objectoriented programming with multiple inheritance. Objects, message passing, subtyping, and inheritance appear as programming idioms in a typed calculus, a modelling technique that facilitates experimentation and h ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
Combining intersection types with higherorder subtyping yields a typed model of objectoriented programming with multiple inheritance. Objects, message passing, subtyping, and inheritance appear as programming idioms in a typed calculus, a modelling technique that facilitates experimentation and helps in distinguishing between essential aspects of the objectoriented style encapsulation and subtype polymorphism, which are directly reflected in the lowlevel type system  and useful but inessential programming idioms such as inheritance. The target calculus, a natural generalization of system F ! with intersection types, is of independent interest. We establish basic structural properties and give a proof of type soundness using a simple semantics based on partial equivalence relations.
Enforcing Safety Properties Using Type Specialization
 Proc. 10th European Symposium on Programming, Lecture Notes in Computer Science
, 2000
"... Type specialization can serve as a powerful tool in enforcing safety properties on foreign code. Using the specification of a monitoring interpreter, polyvariant type specialization can produce compiled code that is guaranteed to obey a specified safety policy. It propagates a security state at comp ..."
Abstract

Cited by 10 (3 self)
 Add to MetaCart
Type specialization can serve as a powerful tool in enforcing safety properties on foreign code. Using the specification of a monitoring interpreter, polyvariant type specialization can produce compiled code that is guaranteed to obey a specified safety policy. It propagates a security state at compiletime and generates code for each different security state. The resulting code contains virtually no runtime operations on the security state, at the price of some code duplication. A novel extension of type specialization by intersection types limits the amount of code duplication considerably, thus making the approach practical. A few years back, mobile code was merely an exciting research subject. Meanwhile, the situation has changed dramatically and mobile code is about to invade our everyday lives. Many applications load parts of their code  or even thirdparty extension modules  from the network and run it on the local computer. Web browsers are the most prominent of these a...
Typing untyped λterms, or Reducibility strikes again!
, 1995
"... It was observed by Curry that when (untyped) λterms can be assigned types, for example, simple types, these terms have nice properties (for example, they are strongly normalizing). Coppo, Dezani, and Veneri, introduced type systems using conjunctive types, and showed that several important classes ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
It was observed by Curry that when (untyped) λterms can be assigned types, for example, simple types, these terms have nice properties (for example, they are strongly normalizing). Coppo, Dezani, and Veneri, introduced type systems using conjunctive types, and showed that several important classes of (untyped) terms can be characterized according to the shape of the types that can be assigned to these terms. For example, the strongly normalizable terms, the normalizable terms, and the terms having headnormal forms, can be characterized in some systems D and D. The proofs use variants of the method of reducibility. In this paper, we presenta uniform approach for proving several metatheorems relating properties ofterms and their typability in the systems D and D. Our proofs use a new and more modular version of the reducibility method. As an application of our metatheorems, we show how the characterizations obtained by Coppo, Dezani, Veneri, and Pottinger, can be easily rederived. We alsocharacterize the terms that have weak headnormal forms, which appears to be new. We conclude by stating a number of challenging open problems regarding possible generalizations of the realizability method.