| Johan Nordlander. Pragmatic subtyping in polymorphic languages. In Proceedings of the third ACM SIGPLAN International Conference on Functional Programming (ICFP'98), September 1998. |
....algorithm is always based on some form of first order unification. Similar in motivation to these is Pfenning s work on type inference for F2 [Pfe88] which uses higher order unification. Extensions of the Hindley Milner system with subtyping have also been studied [AW93, TS96, EST95, Pot96, Nor98, Pot98] They are usually based on constrained types [OSW99] which include a set of subtype constraints as part of a type. A problem in practice is that constraint sets can become very large. Trifonov and Smith [TS96] as well as Pottier [Pot98] have proposed schemes to address the problem. A ....
....[OSW99] which include a set of subtype constraints as part of a type. A problem in practice is that constraint sets can become very large. Trifonov and Smith [TS96] as well as Pottier [Pot98] have proposed schemes to address the problem. A more radical alternative has been proposed by Nordlander [Nor98] and Peyton Jones and Wansbrough [WJ00] They approximate constrained types with unconstrained types in the generalization step. Nordlander s system [Nor98] heuristically unifies type variables with their bounds. He uses a scheme similar to ours to pass partial type information, treating ....
[Article contains additional citation context not shown here]
Johan Nordlander. Pragmatic subtyping in polymorphic languages. In Proceedings of the third ACM SIGPLAN International Conference on Functional Programming (ICFP'98), September 1998.
....algorithm is always based on some form of first order unification. Similar in motivation to these is Pfenning s work on type inference for F2 [Pfe88] which uses higher order unification. Extensions of the Hindley Milner system with subtyping have also been studied [AW93, TS96, EST95, Pot96, Nor98, Pot98] They are usually based on constrained types [OSW99] which include a set of subtype constraints as part of a type. A problem in practice is that constraint sets can become very large. Trifonov and Smith [TS96] as well as Pottier [Pot98] have proposed schemes to address the problem. A ....
....[OSW99] which include a set of subtype constraints as part of a type. A problem in practice is that constraint sets can become very large. Trifonov and Smith [TS96] as well as Pottier [Pot98] have proposed schemes to address the problem. A more radical alternative has been proposed by Nordlander [Nor98] and Peyton Jones and Wansbrough [WJ00] They approximate constrained types with unconstrained types in the generalization step. Nordlander s system [Nor98] heuristically unifies type variables with their bounds. He uses a scheme similar to ours to pass partial type information, treating ....
[Article contains additional citation context not shown here]
Johan Nordlander. Pragmatic subtyping in polymorphic languages. In Proceedings of the third ACM SIGPLAN International Conference on Functional Programming (ICFP'98), September 1998.
....Java or .NET libraries, since they do not require covariance. Nor does the extra complexity buy the Haskell programmer much, because we did not go as far as to allow the Haskell programmer to introduce new subtypes (using, say, extensible sums or products) Another approach, used by O Haskell [24], is to introduce implicit subtyping at every application, but forbid subtyping constraints from appearing within type schemes. This has the advantage of hiding most of the machinery of subtyping from the programmer, who never sees subtype constraints. However, it requires residual subtype ....
Nordlander, J. Pragmatic subtyping in polymorphic languages. In Proceedings of the third ACM SIGPLAN International Conference on Functional Programming (ICFP'98), Baltimore, Maryland (Sept. 1998), ACM Press, pp. 216-227.
....algorithm is always based on some form of first order unification. Similar in motivation to these is Pfenning s work on type inference for F2 [Pfe88] which uses higher order unification. Extensions of the Hindley Milner system with subtyping have also been studied [AW93, TS96, EST95, Pot96, Nor98, Pot98] They are usually based on constrained types [OSW99] which include a set of subtype constraints as part of a type. A problem in practice is that constraint sets can become very large. Trifonov and Smith [TS96] as well as Pottier [Pot98] have proposed schemes to address the problem. A ....
....[OSW99] which include a set of subtype constraints as part of a type. A problem in practice is that constraint sets can become very large. Trifonov and Smith [TS96] as well as Pottier [Pot98] have proposed schemes to address the problem. A more radical alternative has been proposed by Nordlander [Nor98] and Peyton Jones and Wansbrough [WJ00] They approximate constrained types with unconstrained types in the generalization step. Nordlander s system [Nor98] heuristically unifies type variables with their bounds. He uses a scheme similar to ours to pass partial type information, treating ....
[Article contains additional citation context not shown here]
Johan Nordlander. Pragmatic subtyping in polymorphic languages. In Proceedings of the third ACM SIGPLAN International Conference on Functional Programming (ICFP'98), September 1998.
....types and subtyping [3, 18] Related work. Subtyping in dependent type systems is an active research area, with some main trends to be distinguished: name inequivalence based subtyping assumes a subtyping relation on ground types; this relation is then extended to all types. Nordlander [26, 27] has been developing such a theory of subtyping for Haskell; his approach allows to capture those instances of constructor subtyping which do not involve overloading, such as the datatype of lists non empty lists, but fails to capture those instances of constructor subtyping involving overloading, ....
J. Nordlander. Pragmatic subtyping in polymorphic languages. In Proceedings of ICFP'98. ACM Press, 1998.
....[Car93] for a bounded polymorphic language) resolves all subtyping constraints immediately (i.e. on generation at application sites) performing unification on type variables as necessary to ensure that constraints need never be propagated. Slightly less greedy is the algorithm of Nordlander [Nor98] (for a constrained polymorphic language) which resolves only local subtyping constraints immediately, and propagates constraints on variables in the environment further upwards. Nordlander s algorithm is relatively ad hoc, motivated by a desire for the subtype inference algorithm to follow the ....
Johan Nordlander. Pragmatic subtyping in polymorphic languages. In ICFP [ICF98].
....the non syntax directed rules into the others in the usual way, and introduce usage type schemes which are created at letrec nodes and instantiated at variable nodes as usual. Comment: It s possible to perform generalisation and or approximation at points other than just letrec nodes (consider [Nor99, Nor98]) is my choice of ML polymorphism a wise one Given these syntax directed type rules, we may construct a type inference algorithm for the system. The only interesting part of this algorithm is how we perform the generalisation step at letrec nodes; the remaining cases merely collect ....
Johan Nordlander. Pragmatic subtyping in polymorphic languages. In ACM SIGPLAN International Conference on Functional Programming (ICFP'98), 1998.
....[Car93] for a bounded polymorphic language) resolves all subtyping constraints immediately (i.e. on generation at application sites) performing uni cation on type variables as necessary to ensure that constraints need never be propagated. Slightly less greedy is the algorithm of Nordlander [Nor98] (for a constrained polymorphic language) which resolves only local subtyping constraints immediately, and propagates constraints on variables in the environment further upwards. Nordlander s algorithm is relatively ad hoc, motivated by a desire for the subtype inference algorithm to follow the ....
Johan Nordlander. Pragmatic subtyping in polymorphic languages. In ICFP [ICF98].
....environment #, a subtyping theory P , and an expression e, return type # and constraint set C . We will assume here that # is of the form x i : ## i . # i , since handling of constrained type schemes will not be meaningful in our setting until we introduce type annotations (see [Nor99, Nor98] for a formal treatment of this issue) The existence of a constraint set in the output from our inference algorithm might at first seem contradictory to our whole approach. However, these constraint sets have a very limited form, and are there just for the same purpose as the substitutions ....
....program, the inference algorithm returns just a type if it succeeds. Generalization plays the same role here as in Milner s W. We define this operation for the full type scheme syntax with constraints, even though we only need this generality in the presence of type annotations (again see [Nor99, Nor98] for details) gen(C, # D) ##.# D where # = fv(#, D) fv(C) Note that gen takes the # constraint C as a parameter instead of #, since the free variables of # D and # will always be disjoint. The vector notations in rule IApp stand for nested application and function type construction, ....
[Article contains additional citation context not shown here]
Johan Nordlander. Pragmatic Subtyping in Polymorphic Languages. In Proceedings of the third ACM SIGPLAN International Conference on Functional Programming (ICFP '98), Baltimore,MD, September 1998.
....the need for explicit type annotations in most situations that arise in practice. O Haskell also contains a number of minor, mostly syntactic extensions to Haskell, but these will be introduced whenever called for, as we proceed through the code examples. The reader is referred to [NC97] and [Nor98] for an indepth explanation of the novel features of the language. 3.1 Some basic definitions As an introductory example of the subtyping system of O Haskell, let us define a small hierarchy of struct types that will form the basis of the object interfaces to follow. type Link = Int struct ....
Johan Nordlander. Pragmatic Subtyping in Polymorphic Languages. In ICFP, Baltimore, MD, September 1998.
....have found, though, that the object oriented concept of subtyping solves the problem very neatly, and we will present our program examples in the next section using the alternative typings that this solution gives rise to. Our approach to subtyping in polymorphic languages is covered in detail in [Nor97]; for the purposes of this paper it suffices to know that subtyping relations between type constants must be explicitly declared by the programmer, via polymorphic subtype axioms. In this spirit, our concurrency primitives can be given more precise types if the following types and subtype axioms ....
....path for further work starts with the development of more realistic applications that will tell us whether this reactive style, that looks very promising in the small, scales up. Another branch of work concerns the language implementation. We would like to integrate the subtyping approach in [Nor97] with the preprocessor, and do a direct implementation of the library primitives in terms of the underlying runtime machinery. Even though we believe that most O Haskell programs by default uphold the reactive property, it might be interesting to investigate possibilities to formally guarantee ....
Johan Nordlander. Pragmatic Subtyping in Polymorphic Languages. Forthcoming, 1997.
....have found, though, that the object oriented concept of subtyping solves the problem very neatly, and we will present our program examples in the next section using the alternative typings that this solution gives rise to. Our approach to subtyping in polymorphic languages is covered in detail in [Nor97]; for the purposes of this paper it suffices to know that subtyping relations between type constants must be explicitly declared by the programmer, via polymorphic subtype axioms. In this spirit, our concurrency primitives can be given more precise types if the following types and subtype axioms ....
....obvious path for further work starts with the development of more realistic applications that will tell us whether this reactive style that looks very promising in the small scales up. Another branch of work concerns the language implementation. We would like to integrate the subtyping approach in [Nor97] with the preprocessor, and do a direct implementation of the library primitives in terms of the underlying runtime machinery. Even though we believe that most O Haskell programs by default uphold the reactive property, it might be interesting to investigate possibilities to formally guarantee ....
Johan Nordlander. Pragmatic subtyping in polymorphic languages. Forthcoming, 1997.
No context found.
Nordlander, Johan. Pragmatic subtyping in polymorphic languages. Proceedings of the International Conference on Functional Programming, 1998.
No context found.
Johan Nordlander. Pragmatic subtyping in polymorphic languages. In Proceedings of the International Conference on Functional Programming (ICFP), 1998.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC