| Strachey, C.: Fundamental concepts in programming languages. Lecture Notes, International Summer School in Computer Programming, Copenhagen (1967) Reprinted in Higher-Order and Symbolic Computation, 13(1/2), pp. 1--49, 2000. |
....is an important concept in good programming practice. In this introduction, we discuss the uniformity of polymorphic functions and the uniformity underlying data abstraction. We also review some previous work on formalizing uniformity. While discussing polymorphic programming languages, Strachey [Str67] pointed out that there is a signi cant di erence between polymorphic functions that act the same way for arguments of all types and polymorphic functions that act di erently for various types. He referred to the former kind of function as parametrically polymorphic, in contrast to the ad hoc ....
C. Strachey. Fundamental concepts in programming languages. Unpublished lecture notes, International Summer School in Computer Programming, Copenhagen, 1967. 75] A. van Wijngaarden, B. Mailloux, J. Peck, C. Koster, M. Sintzo , C. Lindsey, L. Meertens, and R. Fisker. Revised report on the algorithmic language algol 68. Acta Informatica, 5:1-236, 1975.
....List: for all instances of the type parameter . That is, whatever the type A , there is an instance of the function length that maps a list of A s to a natural number. A polymorphic function is said to be parametric if its behaviour does not depend on the type at which it is instantiated [Str67] That the length function on lists is parametric can be expressed formally. Suppose a function is applied to each element of a list the function may, for example, map each character to a number . Clearly, this will have no e ect on the length of the list. Formally , we have, for all types A ....
....verify that this is indeed the case. As we have de ned them, the notions of polymorphic and parametrically polymorphic are distinct. It is common for programming languages to permit the de nition of polymorphic functions without their being parametric. This is known as ad hoc polymorphism [Str67] For example, a language may have a polymorphic binary operator that is called the equality operator. That is, there is a binary operator, denoted say by = such that for any pair of terms s and t in the language, s = t denotes a boolean value. However, if the operator is parametric, we ....
C. Strachey. Fundamental concepts in programming languages. Lecture Notes, International Summer School in Computer Programming, Copenhagen, August 1967.
....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. ....
C. Strachey. Fundamental concepts in programming languages. Unpublished lecture notes, International Summer School in Computer Programming, Copenhagen, August, 1967.
....polymorphic functions with singleton types that fully specify the behavior of the functions. Using this technique, I show that callers stacks are protected from corruption during function calls in Typed Assembly Language programs. 1 Introduction A polymorphic function can be termed parametric [11] if it always uses the same algorithm, regardless of the type at which it is applied. In particular, a parametric, polymorphic function can neither branch on nor otherwise analyze its type argument. In many type theories (such as the polymorphic lambda calculus) all polymorphic functions must be ....
Chistopher Strachey. Fundamental concepts in programming languages. Lecture Notes, International Summer School in Computer Programming, Copenhagen, August 1967.
....for an understanding of Strachey s notion of parametric polymorphism. The main idea is that a parametricly polymorphic function acts independently from the types to which its type variables are instantiated, and that this uniformity may be captured by imposing a relational structure on the types [OHT93, MSd93, MaR91, Wad89, Rey83, Str67]. The other line of research concerns lambda definability and the full abstraction problem for various models of languages based on simply typed lambda calculus [JuT93, MaR91, MSd93, OHR94, Pit93, Plo80, Lau70] Early attempts to characterize lambda definability in the full type hiearchy focused ....
C. Strachey. Fundamental Concepts in Programming Languages. Unpublished lecture notes, International Summer School in Computer Programming, Copenhagen, August 1967.
....loses its simple sense in a world of communicating agents. To our knowledge, the present study is the rst to consider the behavioral consequences of polymorphism in a concurrent setting. Our primary interest is in the semantic concept of parametric polymorphism, a term coined by Strachey [Str67] for polymorphic functions that behave uniformly in their type arguments. In the polymorphic lambdacalculus, all polymorphic functions are parametric, since the calculus contains no operations for testing the actual types passed as parameters. Similarly, in the polymorphic pi calculus, when a ....
....of algebraic reasoning about equivalence. The basic mechanisms of linearity have more recently been extended to type systems capable of guaranteeing properties such as deadlock freedom in certain cases [Yos96, Kob96] The basic intuition behind the notion of parametricity, introduced by Strachey [Str67] and rened by Reynolds [Rey74] and others, is that a polymorphic function is parametric if its behavior is independent of (or uniform in) the type at which it is instantiated. This intuition can be phrased either intensionally a parametric polymorphic function executes the same algorithm ....
C. Strachey. Fundamental concepts in programming languages. Lecture Notes, International Summer School in Computer Programming, Copenhagen, August 1967.
....de allocate L values, and states an axiom intended to ensure that a new L value does not overlap any of the previously existing ones. But this is the only statement of properties expected of the intuitive storage model. It seems that Strachey first used the term location in his 1967 lectures [66], but in a more general sense than in later work on denotational semantic models. In Section 2.2, he emphasizes that a location need not be addressable in general, and can be expressed as a load update pair. Some examples of the utility of this generalized form of location are given in Section ....
....two implementations of the abstract counter (barring overflow, or other similar low level issues) Such equivalences fail both in classical Strachey like models and in the original possible worlds models. A solution to this problem can be traced back to Section 3.6. 4 of Strachey s lecture notes [66], where he introduces an important distinction between two types 6 of polymorphism: ad hoc and parametric. He explains the difference rather informally: parametric polymorphism is more regular than the ad hoc variety. But parametric polymorphism is also used later on in Section 4.1 in the ....
C. Strachey. Fundamental Concepts in Programming Languages. Unpublished lecture notes, International Summer School in Computer Programming, Copenhagen, August 1967. Reprinted in this volume.
....the ability to write so called generic code capturing commonly occurring patterns is vital to reusability and thus to programmer productivity. One of the most significant contributions to generic programming has been the notion of parametric polymorphism first introduced by Strachey [32] and later incorporated in the language ML by Milner [25, 26] The use of parametric polymorphism eliminates the compulsion in languages like Pascal to provide irrelevant type information. For example, it is irrelevant to the computation of the length of a list whether the elements of the list 1 ....
C. Strachey. Fundamental concepts in programming languages. Lecture Notes, International Summer School in Computer Programming, Copenhagen, August 1967. 35
....1 loses its simple sense in a world of communicating agents. To our knowledge, the present study is the first to consider the behavioral consequences of polymorphism in a concurrent setting. Our primary interest is in the semantic concept of parametric polymorphism, a term coined by Strachey [Str67] for polymorphic functions that behave uniformly in their type arguments. In the polymorphic lambda calculus, all polymorphic functions are parametric, since the calculus contains no operations for testing the actual types passed as parameters. Similarly, in the polymorphic picalculus, when a ....
....of algebraic reasoning about equivalence. The basic mechanisms of linearity have more recently been extended to type systems capable of guaranteeing properties such as deadlock freedom in certain cases [Yos96, Kob98] The basic intuition behind the notion of parametricity, introduced by Strachey [Str67] and refined by Reynolds [Rey74] and others, is that a polymorphic function is parametric if its behavior is independent of (or uniform in) the type at which it is instantiated. This intuition can be phrased either intensionally a parametric polymorphic function executes the same algorithm ....
C. Strachey. Fundamental concepts in programming languages. Lecture Notes, International Summer School in Computer Programming, Copenhagen, August 1967.
....account for irreversibility, either. However, we may understand the main message of that work as applying more broadly than to the specific models. The proposal there was that the abstractness of local state could be understood in terms of Strachey s concept of parametric (uniform) polymorphism [37,33]. This leads to quite a convincing explanation of locality. Furthermore, it has recently become clear that a slight variation on the parametricity semantics, based on a strict function model of linear (even, relevant) polymorphism, rules out the snapback and other unwanted operations. There should ....
C. Strachey. Fundamental Concepts in Programming Languages. Unpublished lecture notes, International Summer School in Computer Programming, Copenhagen, August 1967.
.... was proved for both the simply typed (or first order) lambda calculus and the polymorphic (or second order) lambda calculus [2, 3, 4] In the polymorphic case this theorem led naturally to a definition of parametric polymorphism that captured the intuitive concept first described by Strachey [5]. Unfortunately, however, most of the results of [1] were limited to a classical set theoretic model. Thus the abstraction theorem for the simply typed case was merely a repetition of the logical relations theorem for the typed lambda calculus [6] while the developments for the polymorphic case ....
....(ObK 0 ) n , then there is a unique g 2 [ R n Gamma Gamma R [ R n such that [ e] K n = Ug : Proof : Let g = e] R n . As before, since U is faithful, g is unique. End of Proof ) 4 Parametricity When Strachey originally introduced the notion of polymorphism [5], he distinguished parametric polymorphic functions, whose behavior does not depend upon the types to which they are applied, from ad hoc polymorphic functions, which can exhibit arbitrarily different behavior for different types. In [1] this distinction was connected with the identity extension ....
Strachey, C. Fundamental Concepts in Programming Languages. Unpublished lecture notes, International Summer School in Computer Programming, Copenhagen, August 1967.
....types oe. Conversely, if s is a term of type , then ff:s is a term of type 8ff: Now consider for instance the type Polybool = 8ff:ff ff ff: A term t of this type yields a term toe of type oe oe oe, for every type oe. Moreover, following Strachey s concept of parametric polymorphism [62], one expects the behavior of toe to vary uniformly with the choice of oe. In the polymorphic lambda calculus, there are only two such uniform functions of type Polybool, i.e. there are exactly two closed terms of type Polybool, corresponding to the first and second projections: p 1 = ....
C. Strachey. Fundamental concepts in programming languages. Unpublished lecture notes, International Summer School in Computer Programming, Copenhagen, Aug. 1967.
....loses its simple sense in a world of communicating agents. To our knowledge, the present study is the first to consider the behavioral consequences of polymorphism in a concurrent setting. Our primary interest is in the semantic concept of parametric polymorphism, a term coined by Strachey [Str67] for polymorphic functions that behave uniformly in their type arguments. In the polymorphic lambda calculus, all polymorphic functions are parametric, since the calculus contains no operations for testing the actual types passed as parameters. Similarly, in the polymorphic picalculus, when a ....
....of algebraic reasoning about equivalence. The basic mechanisms of linearity have more recently been extended to type systems capable of guaranteeing properties such as deadlock freedom in certain cases [Yos96, Kob96] The basic intuition behind the notion of parametricity, introduced by Strachey [Str67] and refined by Reynolds [Rey74] and others, is that a polymorphic function is parametric if its behavior is independent of (or uniform in) the type at which it is instantiated. This intuition can be phrased either intensionally a parametric polymorphic function executes the same algorithm ....
C. Strachey. Fundamental concepts in programming languages. Lecture Notes, International Summer School in Computer Programming, Copenhagen, August 1967.
No context found.
Strachey, C.: Fundamental concepts in programming languages. Lecture Notes, International Summer School in Computer Programming, Copenhagen (1967) Reprinted in Higher-Order and Symbolic Computation, 13(1/2), pp. 1--49, 2000.
No context found.
Strachey, C.: Fundamental concepts in programming languages. Lecture Notes, International Summer School in Computer Programming, Copenhagen (1967.
No context found.
Strachey, C. Fundamental Concepts in Programming Languages. Unpublished lecture notes, International Summer School in Computer Programming, Copenhagen, August 1967.
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