Results 1 - 10
of
22
Higher-Order 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 130 (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 trade-offs between language features, our analysis suggested that the first-order modules system of ML could be naturally extended to higher orders. However, whereas ML maintains a clear distinction between compile-time and run-time 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 Object-Oriented Programming Language: Design, Static Typing and Semantics
- Journal of Functional Programming
, 1993
"... In order to illuminate the fundamental concepts involved in object-oriented programming languages, we describe the design of TOOPL, a paradigmatic, statically-typed, functional, object-oriented programming language which supports classes, objects, methods, hidden instance variables, subtypes, and in ..."
Abstract
-
Cited by 110 (9 self)
- Add to MetaCart
In order to illuminate the fundamental concepts involved in object-oriented programming languages, we describe the design of TOOPL, a paradigmatic, statically-typed, functional, object-oriented 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 object-oriented languages is designing type-checking rules which ensure that methods provided in a superclass will continue to be type correct when inherited in a subclass. The type-checking 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 type-safety, 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 ML-style 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 67 (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 ML-style 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, Sakyo-ku, Kyoto 606-01, JAPAN; email: ohori@kurims.kyoto-u.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 0164-0925/99/0100-0111 $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 64 (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 logical-relations) theorem, the identity extension lemma, and parametric polymorphism, for Cartesian-closed-category models of the simply typed lambda calculus and P ..."
Abstract
-
Cited by 53 (2 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 logical-relations) theorem, the identity extension lemma, and parametric polymorphism, for Cartesian-closed-category models of the simply typed lambda calculus and PL-category 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 type-theoretic model of object-oriented multiple inheritance (Compagnoni & Pierce, 1996). Related calculi combining restricted forms of intersection types with higher-order polymorphism ..."
Abstract
-
Cited by 34 (0 self)
- Add to MetaCart
this paper (Compagnoni, Intersection Types and Bounded Polymorphism 3 1994; Compagnoni, 1995) has been used in a type-theoretic model of object-oriented multiple inheritance (Compagnoni & Pierce, 1996). Related calculi combining restricted forms of intersection types with higher-order 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 proof-theoretic 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
HasCASL: Towards Integrated Specification and Development of Functional Programs
, 2002
"... The development of programs in modern functional languages such as Haskell calls for a wide-spectrum 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 wide-spectrum 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 set-theoretic 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.
Notes on Sconing and Relators
, 1993
"... This paper describes a semantics of typed lambda calculi based on relations. The main mathematical tool is a category-theoretic method of sconing, also called glueing or Freyd covers. Its correspondence to logical relations is also examined. 1 Introduction Many modern programming languages feature ..."
Abstract
-
Cited by 24 (0 self)
- Add to MetaCart
This paper describes a semantics of typed lambda calculi based on relations. The main mathematical tool is a category-theoretic method of sconing, also called glueing or Freyd covers. Its correspondence to logical relations is also examined. 1 Introduction Many modern programming languages feature rather sophisticated typing mechanisms. In particular, languages such as ML include polymorphic data types, which allow considerable programming flexibility. Several notions of polymorphism were introduced into computer science by Strachey [Str67], among them the important notion of parametric polymorphism. Strachey's intuitive definition is that a polymorphic function is parametric if it has a uniformly given algorithm in all types, that is, if the function's behavior is independent of the type at which the function is instantiated. Reynolds [Rey83] proposed a mathematical definition of parametric polymorphic functions by means of invariance with respect to certain relations induced by typ...

