| L. Damas and R. Milner: Principal type-schemes for functional programs. In Proc. of POPL '82. ACM Press, 1982. |
....mechanism to implement appropriate proof search engines. 2 System Description Meta level Language. inka supports the use of formulas of different logics and proof objects of different calculi. All these objects are encoded in a meta level language, based on a (ML type) polymorphic calculus [DM82] terms are automatically kept in fij long normal form. Using calculus as meta language provides a clear concept of variables, namely bound and free variables. 208 The annotations in inka s calculus are described in a first order term language and are attached to occurrences of function ....
L. Damas, R. Milner: Principal type schemes for functional programs, Ann. ACM Symp. on Principles of Programming Languages (POPL), 1982
....type variables, which is essential for handling declarations of polymorphic functions. Milner implemented the first practical polymorphic typechecker, and showed that the type system is sound [Milner 78] More recently, Milner and Damas proved the principal type property for the extended system [Damas 82] which implies that the type system is decidable. With minor refinements, this is the state of the art exposed in the rest of this paper. This style of polymorphic typechecking was soon adopted by Hope [Burstall 80] and more recently has been incorporated in other functional languages. During ....
....shallow types. We have chosen to use type quantifiers in the inference system because this helps explain the behavior of generic nongeneric type variables, which correspond exactly to free quantified type variables. For a slightly different inference system which avoids non shallow types, see [Damas 82] Here is the set of inference rules. IDE] is an axiom scheme, while the other rules are proper inferences. The horizontal bar reads implies. An assumption x:t is the association of a variable x with a type t. If A is a set of assumptions (uniquely mapping variables to types) then A.x:t is the ....
L.Damas, R.Milner: Principal type-schemes for functional programs, Proc. POPL 82, pp.207-212.
....syntax free constraints that can be solved e#ciently. State of the art. One of the pioneering papers in the area is [10] that developed the first polymorphic type inference and algorithm for the applicative fragment of ML; a shorter presentation for the typed # calculus with let is given in [3]. Since then many papers have studied how to integrate subtyping. A number of early papers did so by mainly focusing on the typed # calculus and only briefly dealing with let [11, 5] Later papers have treated polymorphism in full generality [18, 8] A key ingredient in these approaches is the ....
L. Damas and R. Milner: Principal type-schemes for functional programs. In Proc. of POPL '82. ACM Press, 1982.
....firstorder abstract syntax, our type system requires all constants to be essentially first order. However, this does not exclude higher order meta variables in rule terms. With : s s bool we denote the usual subsumption ordering on type schemes: a.#a# #int b.#(b b)# #int, for example. See [DM 82] for a formal definition) The core of the system consists of the typing axioms: 5 (var) S, G x : s (x:s G) const) S, G c : s (c:s S, s essentiall first order) S, G r : t t S,G r : t ( elim) S, G r r : t S, G r : t S, G r : t ( intro) S, G r r : t t S, G r : ....
....p:t 1 . t n bool S) S, G F t p(t 1 . t n ) S, G F t f S, G F t f (junctor) where # = S, G F t f # f 6 S, G t 1 : t 1 (const acc ) S, GQ t t 1 : t 1 (anno acc ) S, GQ t f: t (if (f: a. t a) t t ) S) Theorem: Existence of principal types is decidable. Proof: Adaptation of [DM 82] With T S (G) or, sloppily T S (X) we denote the set of well typed rule terms over signature S and type assumptions G. Instead of S,#G# r : s we will write r s (or r t ) and assume an arbitrary, but fixed environment. Free Variables Let V(r) MV) denote the set of meta variables occurring in ....
L. Damas, R. Milner: Principal Type Schemes for Functional Programs. POPL#8, Jan. 1982.
...., j f f 2 FS Sigma , j (MN) application, j (B M) guarded expression, B: bool j (B M 1 2M 2 ) conditional expression, B: bool, M 1 ; M 2 : for some Expressions should be well typed. We omit the formal definition of a type inference system for expressions; cfr. Milner 78, Damas, Milner 82] In the sequel we will reserve B;C for boolean expressions. We remark that B M and B M 1 2M 2 are intended to mean if B then M else undefined and if B then M 1 else M 2 , respectively. We shall assume that application associates to the left and omit brackets accordingly. A BABEL program of ....
L. Damas and R. Milner: Principal type schemes for functional programs, ACM Symp. on Principles of Programming Languages, 1982.
....mechanism to implement appropriate proof search engines. 2 System Description Meta level Language. inka supports the use of formulas of different logics and proof objects of different calculi. All these objects are encoded in a metalevel language, based on a (ML type) polymorphic calculus [4]. terms are automatically kept in fij long normal form. Using calculus as meta language provides a clear concept of variables, namely bound and free variables. The annotations in inka s calculus are described in a first order term language and are attached to occurrences of function constants ....
L. Damas, R. Milner: Principal type schemes for functional programs, Ann. ACM Symp. on Principles of Programming Languages (POPL), 1982.
....our current implemented environment. Some conclusions are finally drawn in section 6. 2 BabLog s syntax The syntax of BabLog is similar to that of the functional logic programminglanguage Babel [KLMR90a] MR92] which includes a type system with parametric polymorfism in the style of ML [Mil78] [DM82], facilities to define high order functions using currification and partial application in order to achieve higher order programming without using Gamma abstractions in the line of Miranda [Tur85] Let DC;DF be a signature with the ranked alphabet DC = S n2N DC n of data constructor ....
L. Damas, R. Milner: Principal type schemes for functional programs, ACM Symp. on Principles of Programming Languages, 1982, pp. 207--212.
....5 presents our actual implemented environment. Some conclusions are finally drawn in section 6. 2 BabLog Syntax The syntax of BabLog is similar to that of the functional logic programming language Babel [15] 22] which includes a type system with parametric polymorphism in the style of ML [21] [7], facilities to define higher order functions using curryfication and partial application in order to achieve higher order programming without using Gammaabstractions in the line of Miranda [26] Let DC;DF be a signature with the ranked alphabet DC = S n2N DC n of data constructor ....
L. Damas, R. Milner: Principal type schemes for functional programs, ACM Symp. on Principles of Programming Languages, 1982, pp. 207--212.
....are enough to characterize the type system at an intuitive level, and can be easily formalized as a type inference system. The rules are sound and can stand on their own, but have been discovered and justified by studying a particular semantics of types, developed in [Hindley 69] Milner 78] Damas 82] MacQueen 84a] and [Mitchell 84] Although we do not need to discuss that semantic theory of types in detail, it may be useful to explain the basic intuitions behind it. These intuitions can in turn be useful in understanding the typing rules, particularly regarding the concept of subtypes which ....
L.Damas, R.Milner: Principal type-schemes for functional programs, Proc. POPL 1982, pp.207-212.
No context found.
L. Damas and R. Milner: Principal type-schemes for functional programs. In Proc. of POPL '82. ACM Press, 1982.
No context found.
L. Damas, R. Milner Principal Type Schemes for Functional Programs 9th ACM Symp. on Principles of Programming Languages 1982
No context found.
L. Damas, R. Milner Principal Type Schemes for Functional Programs 9th ACM Symp. on Principles of Programming Languages 1982
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