Results 1 
6 of
6
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.
Programming With Intersection Types, Union Types, and Polymorphism
, 1991
"... Type systems based on intersection types have been studied extensively in recent years, both as tools for the analysis of the pure calculus and, more recently, as the basis for practical programming languages. The dual notion, union types, also appears to have practical interest. For example, by re ..."
Abstract

Cited by 50 (3 self)
 Add to MetaCart
Type systems based on intersection types have been studied extensively in recent years, both as tools for the analysis of the pure calculus and, more recently, as the basis for practical programming languages. The dual notion, union types, also appears to have practical interest. For example, by refining types ordinarily considered as atomic, union types allow a restricted form of abstract interpretation to be performed during typechecking. The addition of secondorder polymorphic types further increases the power of the type system, allowing interesting variants of many common datatypes to be encoded in the "pure" fragment with no type or term constants. This report summarizes a preliminary investigation of the expressiveness of a programming language combining intersection types, union types, and polymorphism.
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
Tailoring Filter Models
 TYPESâ€™03, volume 3085 of LNCS
, 2004
"... Conditions on type preorders are provided in order to characterize the induced filter models for the #calculus and some of its restrictions. Besides, two examples are given of filter models in which not all the continuous functions are representable. 1. ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Conditions on type preorders are provided in order to characterize the induced filter models for the #calculus and some of its restrictions. Besides, two examples are given of filter models in which not all the continuous functions are representable. 1.
Whiley: a Platform for Research in Software Verification
"... Abstract. An ongoing challenge for computer science is the development of a tool which automatically verifies programs meet their specifications, and are free from runtime errors such as dividebyzero, array outofbounds and null dereferences. Several impressive systems have been developed to this ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. An ongoing challenge for computer science is the development of a tool which automatically verifies programs meet their specifications, and are free from runtime errors such as dividebyzero, array outofbounds and null dereferences. Several impressive systems have been developed to this end, such as ESC/Java and Spec#, which build on existing programming languages (e.g. Java, C#). However, there remains a need for an open research platform in this area. We have developed the Whiley programming language, and its accompanying verifying compiler, as an open platform for research. Whiley has been designed from the ground up to simplify the verification process. In this paper, we introduce the Whiley language and it accompanying verifying compiler tool. 1
Reflections on Verifying Software with Whiley
, 2013
"... An ongoing challenge for computer science is the development of a tool which automatically verifies programs meet their specifications, and are free from runtime errors such as dividebyzero, array outofbounds and null dereferences. Several impressive systems have been developed to this end, such ..."
Abstract
 Add to MetaCart
An ongoing challenge for computer science is the development of a tool which automatically verifies programs meet their specifications, and are free from runtime errors such as dividebyzero, array outofbounds and null dereferences. Several impressive systems have been developed to this end, such as ESC/Java and Spec#, which build on existing programming languages (e.g. Java, C#). Unfortunately, such languages were not designed for this purpose and this significantly hinders the development of practical verification tools for them. For example, soundness of verification in these tools is compromised. We have developed a programming language specifically designed for verification, called Whiley, and an accompanying verifying compiler. In this paper, we reflect on a number of challenges we have encountered in developing a practical system. 1