Results 1  10
of
25
HigherOrder Modules and the Phase Distinction
 In Seventeenth ACM Symposium on Principles of Programming Languages
, 1990
"... Typed λcalculus is an important tool in programming language research because it provides an extensible framework for studying language features both in isolation and in their relation to each other. In earlier work we introduced a predicative function calculus, XML, for modeling several asp ..."
Abstract

Cited by 134 (23 self)
 Add to MetaCart
Typed λcalculus is an important tool in programming language research because it provides an extensible framework for studying language features both in isolation and in their relation to each other. In earlier work we introduced a predicative function calculus, XML, for modeling several aspects of the Standard ML type system. Following MacQueen, our study focused on the use of dependent types to represent the modularity constructs of Standard ML. In addition to shedding some light on the tradeoffs between language features, our analysis suggested that the firstorder modules system of ML could be naturally extended to higher orders. However, whereas ML maintains a clear distinction between compiletime and runtime in both its implementation and formal semantics, the XML calculus blurs this distinction. Since static type checking is, in our view, essential to the practical utility of ML, we introduce a refinement of the XML calculus for which type checking is decidable at compile time....
A Paradigmatic ObjectOriented Programming Language: Design, Static Typing and Semantics
 Journal of Functional Programming
, 1993
"... In order to illuminate the fundamental concepts involved in objectoriented programming languages, we describe the design of TOOPL, a paradigmatic, staticallytyped, functional, objectoriented programming language which supports classes, objects, methods, hidden instance variables, subtypes, and in ..."
Abstract

Cited by 117 (9 self)
 Add to MetaCart
In order to illuminate the fundamental concepts involved in objectoriented programming languages, we describe the design of TOOPL, a paradigmatic, staticallytyped, functional, objectoriented programming language which supports classes, objects, methods, hidden instance variables, subtypes, and inheritance. It has proven to be quite difficult to design such a language which has a secure type system. A particular problem with statically type checking objectoriented languages is designing typechecking rules which ensure that methods provided in a superclass will continue to be type correct when inherited in a subclass. The typechecking rules for TOOPL have this feature, enabling library suppliers to provide only the interfaces of classes with actual executable code, while still allowing users to safely create subclasses. In order to achieve greater expressibility while retaining typesafety, we choose to separate the inheritance and subtyping hierarchy in the language. The design of...
A Polymorphic Record Calculus and Its Compilation
 ACM Transactions on Programming Languages and Systems
, 1995
"... this article appeared in Proceedings of ACM Symposium on Principles of Programming Languages, 1992, under the title \A compilation method for MLstyle polymorphic record calculi." This work was partly supported by the Japanese Ministry of Education under scienti c research grant no. 06680319. Author ..."
Abstract

Cited by 72 (8 self)
 Add to MetaCart
this article appeared in Proceedings of ACM Symposium on Principles of Programming Languages, 1992, under the title \A compilation method for MLstyle polymorphic record calculi." This work was partly supported by the Japanese Ministry of Education under scienti c research grant no. 06680319. Author's address: Research Institute for Mathematical Sciences, Kyoto University, Sakyoku, Kyoto 60601, JAPAN; email: ohori@kurims.kyotou.ac.jp Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of ACM. To copy otherwise, or to republish, requires a fee and/or speci c permission. c 1999 ACM 01640925/99/01000111 $00.75
Programming with Intersection Types and Bounded Polymorphism
, 1991
"... representing the official policies, either expressed or implied, of the U.S. Government. ..."
Abstract

Cited by 66 (4 self)
 Add to MetaCart
representing the official policies, either expressed or implied, of the U.S. Government.
Types, Abstraction, and Parametric Polymorphism, Part 2
, 1991
"... The concept of relations over sets is generalized to relations over an arbitrary category, and used to investigate the abstraction (or logicalrelations) theorem, the identity extension lemma, and parametric polymorphism, for Cartesianclosedcategory models of the simply typed lambda calculus and P ..."
Abstract

Cited by 53 (1 self)
 Add to MetaCart
The concept of relations over sets is generalized to relations over an arbitrary category, and used to investigate the abstraction (or logicalrelations) theorem, the identity extension lemma, and parametric polymorphism, for Cartesianclosedcategory models of the simply typed lambda calculus and PLcategory models of the polymorphic typed lambda calculus. Treatments of Kripke relations and of complete relations on domains are included.
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 36 (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
Outline of a Proof Theory of Parametricity
 Proc. 5th International Symposium on Functional Programming Languages and Computer Architecture
, 1991
"... Reynolds' Parametricity Theorem (also known as the Abstraction Theorem), a result concerning the model theory of the second order polymorphic typed calculus (F 2 ), has recently been used by Wadler to prove some unusual and interesting properties of programs. We present a purely syntactic version o ..."
Abstract

Cited by 27 (2 self)
 Add to MetaCart
Reynolds' Parametricity Theorem (also known as the Abstraction Theorem), a result concerning the model theory of the second order polymorphic typed calculus (F 2 ), has recently been used by Wadler to prove some unusual and interesting properties of programs. We present a purely syntactic version of the Parametricity Theorem, showing that it is simply an example of formal theorem proving in second order minimal logic over a first order equivalence theory on terms. We analyze the use of parametricity in proving program equivalences, and show that structural induction is still required: parametricity is not enough. As in Leivant's transparent presentation of Girard's Representation Theorem for F 2 , we show that algorithms can be extracted from the proofs, such that if a term can be proven parametric, we can synthesize from the proof an "equivalent" parametric term that is moreover F 2 typable. Given that Leivant showed how proofs of termination, based on inductive data types and s...
HasCASL: Towards Integrated Specification and Development of Functional Programs
, 2002
"... The development of programs in modern functional languages such as Haskell calls for a widespectrum specification formalism that supports the type system of such languages, in particular higher order types, type constructors, and parametric polymorphism, and contains a functional language as an exe ..."
Abstract

Cited by 25 (11 self)
 Add to MetaCart
The development of programs in modern functional languages such as Haskell calls for a widespectrum specification formalism that supports the type system of such languages, in particular higher order types, type constructors, and parametric polymorphism, and contains a functional language as an executable subset in order to facilitate rapid prototyping. We lay out the design of HasCasl, a higher order extension of the algebraic specification language Casl that is geared towards precisely this purpose. Its semantics is tuned to allow program development by specification refinement, while at the same time staying close to the settheoretic semantics of first order Casl. The number of primitive concepts in the logic has been kept as small as possible; we demonstrate how various extensions to the logic, in particular general recursion, can be formulated within the language itself.