| Peter Canning, William Cook, Walter Hill, Walter Oltho#, and John C. Mitchell. Fbounded polymorphism for object-oriented programming. Functional Programming Languages and Computer Architecture, pages 273--280, ACM, 1989. |
....the technique is not mixin specific or even C specific. For instance, it was used by Wadler, Odersky and the first author [32] in Generic Java [7] an extension of Java with parametric polymorphism) The origins of the technique reach back at least to the development of F bounded polymorphism [8]. Hygienic templates in the C standard. The C standard ( 1] section 14.6) imposes several rules for name resolution of identifiers that occur inside templates. The extent to which current compilers implement these rules varies, but full conformance is the best approach to future ....
P. Canning, W. Cook, W. Hill, W. Olthoff, and J. C. Mitchell, "F-bounded Polymorphism for Object-Oriented Programming", in Proc. Conf. on Functional Programming Languages and Computer Architecture, 1989, 273-280.
....implements and an interface or extends and a class. The bounding interface or class may itself be parameterized, and may include type variables appearing elsewhere in the parameter section. Recursion or mutual recursion between parameters is allowed that is, GJ supports F bounded polymorphism [CCHOM89]. Omitting a bound is equivalent to using the bound Object. 3 Translating GJ To translate from GJ to the Java programming language, one replaces each type by its erasure. The erasure of a parametric type is obtained by deleting the parameter (so LinkedList A erases to LinkedList) the erasure ....
Peter Canning, William Cook, Walter Hill, Walter Oltho#, and John C. Mitchell. Fbounded polymorphism for object-oriented programming. Functional Programming Languages and Computer Architecture, pages 273--280, ACM, 1989.
....3. A Guide to l l Calculus Foundations The theoretical model is motivated by considering that an object is a dynamic entity from which you obtain behaviour by selecting its methods. An object is therefore modelled as a record, a set of fields containing simple functions representing its methods (Canning et al. 1989a, 1989b; Cook et al. 1990). In the following, p1, p2 and p3 are records representing cartesian point objects. The fields of such a record are selected using the dot . operator: p1 = x a 3, y a 4 p1.x 3 where x and y are labels which map a to values. In general, the values associated with the labels are simple ....
Canning, P., Cook, W., Hill, W., Olthoff, W. and Mitchell, J., (1989a), 'F-bounded polymorphism for object-oriented programming', Proc. 4th Int. Conf. Func. Prog. Lang. and Arch., Imperial College London, September, 273-280.
.... type inference system is concerned, types may be associated with classes (as in Java) or they may be a separate entity (as in Cecil) We include closures, multiple inheritance and overloading in our system, but leave advanced typing features such as polymorphic, parameterized, and F bounded types [Canning et al. 1989] to future research. While these advanced type systems are necessary for many real applications, they complicate the inference problem considerably. Many real world programming languages, including Java, omit features like F bounded polymorphism to simplify their programming model. The scope of ....
Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John C. Mitchell. FBounded Polymorphism for Object-Oriented Programming, Proceedings of the Fourth International Conference on Functional Programming Languages and Computer Architecture, pp. 273-280, September 1989.
....is not mixin specific or even C specific. For instance, it was used by Wadler, Odersky and the first author 9 [33] in Generic Java [7] an extension of Java with parametric polymorphism) The origins of the technique reach back at least to the development of Fbounded polymorphism (e.g. [8]) Hygienic templates in the C standard.The C standard ( 1] section 14.6) imposes several rules for name resolution of identifiers that occur inside templates. The extent to which current compilers implement these rules varies, but full conformance is the best approach to future ....
P. Canning, W. Cook, W. Hill, W. Olthoff, and J. C. Mitchell, "F-bounded Polymorphism for Object-Oriented Programming", in Proc. Conf. on Functional Programming Languages and Computer Architecture, 1989, 273-280.
....specialisation which includes covariant parameter types such as Mytype . If Orderable is defined as a concept type then the second problem is clearly solved since polymorphism is excluded. The first problem is not solved by this approach. F bounded polymorphism F bounded polymorphism [CCH89] can also be used to solve the second problem. In this approach, the type Orderable is itself defined as a generic type: interface Orderable[OTHERTYPE] boolean before(OTHERTYPE other) class Emp Info implements Orderable[Emp Info] generic class ....
P. Canning, W. Cook, W. Hill, W. Olthoff, J. Mitchell "F-bounded Polymorphism for Object-oriented Programming", Proc. Functional Programming Languages and Computer Architecture, pp.273-280, 1989.
....of some specified type are allowed as actual parameters. A number of problems have been identified in this approach [Cook 89] and a considerable amount of research has gone into finding alternatives. The MIT proposal adopts the where clause mechanism of Theta. Pizza uses F bounded polymorphism [Canning 89] for constrained genericity. As discussed in [Evered 97] both these and other mechanisms for constrained genericity such as generalisation [Pedersen 89] structural subtyping [Abadi 96] and matching [Bruce 97] have severe problems with regard to generic collection types. Firstly, a potential ....
P. Canning, W. Cook, W. Hill, W. Olthoff, J. Mitchell "F-bounded Polymorphism for Object-oriented Programming", Proc. Functional Programming Languages and Computer Architecture, pp.273-280, 1989.
....order logic of the calculus of constructions. So for example extracting the computational content from the encoding of subtyping gives rise to the usual coercion functions. The encodings provide a logical justification for record calculi and object oriented features like F bounded polymorphism [CCHM89] or subtyping, and allows to investigate metamathematical properties such as soundness, consistency, and coherence of different encoded idioms. In contrast to our work, encapsulation, inheritance, or late binding are not treated. Like in this paper finite unwindings are employed to resolve the ....
Peter Canning, William Cook, Walt Hill, and Walter Olthoff John C. Mitchell. Fbounded Polymorphism for object-oriented programming. In Fourth ACM Conference on Functional Programming Languages and Computer Architecture, LNCS, pages 273--280. ACM, Springer, September 1989.
....public XList asXThis( return this; and similarly for LenXList. The types work out because XThis is instantiated to XList in XList. This translation of virtual types into parameterised types closely resembles the usual semantics of objectoriented features in terms of F bounded polymorphism [CCHOM89, Bru94]. 4 Providing virtual types statically In this section of the paper we present a proposal for extending Java with a construct which is similar to virtual types, but which can be statically type checked with rules which can be easily understood by programmers. In particular we show that if I1 , ....
Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John C. Mitchell, Fbounded polymorphism for object-oriented programming. In Conference on Functional Programming Languages and Computer Architecture, pages 273--280, ACM, 1989.
....where the domain and codomain range over classes. This notion has only been captured imperfectly in earlier treatments of mixins [BC90] which implicitly assume extension functions having the less satisfying form: D : TYPE TYPE, ranging over simple types in the place of classes. Cook et al. [Cook89, CCHO89a, CCHO89b, CHC90] have elsewhere promoted the view that a class is not really a type t, but a family of related types constrained by an F bound: t F[t] However, in [CHC90] mixins could not be typed in the F bounded model, because the combination operator would only work for simply typed records. In section ....
....development [BC90, p308 9] reveals that classes are given simple types. This interpretation is only adequate for languages such as Modula 3, in which subclassing is subtyping and methods are external to recursive objects [CDJG89] Generally, this is not consistent with other work by Cook et al. [Cook89, CCHO89a, CCHO89b, CHC90] which has found that in practice most object oriented languages assume a different type model. The weakness of the simply typed model is revealed when P, D and C have recursive types. This is a common occurrence, for example when methods of the parent P make calls through self to other parent ....
P Canning, W Cook, W Hill, W Olthoff and J Mitchell (1989), 'F-bounded polymorphism for object-oriented programming', Proc. 4th Int. Conf. Func. Prog. Lang. and Arch., Imperial College London, September, 273-280.
....object oriented programs. Its inability to provide intuitively desirable results in the presence of recursive types has motivated the development of several more powerful, but more complex approaches. These approaches may be classified into three major groupings: F bounded quantification [Canning et al. 89a] bounded matching [Black Hutchinson 91, Bruce 93, Bruce et al. 95 Bracha Griswold 93] and where clauses [Day et al. 95] or recursively constrained types [Eifrig et al. 95] F bounded quantification and bounded matching can be shown to be fundamentally equivalent in expressive power; their ....
....between each of these three approaches to constraining polymorphism. 5. 1 F Bounded Quantification F bounded quantification was proposed by Canning et al. as an extension of bounded quantification that would be more effective for the recursive types that are often found in object oriented programs[Canning et al. 89a] An F bounded type is a type of the form t F[t] s, where F[t] is an expression, usually containing the type variable t. The main difference between F bounded types and ordinary bounded types is that the type variable t is bound over both the type s and the bound itself, F[t] One natural ....
[Article contains additional citation context not shown here]
Peter Canning, William Cook, Walter Hill, John Mitchell, and Walter Olthoff. FBounded Polymorphism for Object-Oriented Programming. In Proceedings of the Fourth International Conference on Functional Programming Languages and Computer Architecture, pages 273--280. ACM, 1989.
.... endorse phrases similar to: a class realises, or implements a type , conveying the implicit demotion of the class (4) to a mere unit of implementation, quite at odds with (2) which is closer in spirit to (3) The monomorphic polymorphic dimension has been considered in theoretical treatments [CaWe85, CCHO89a, CoPa89, CCHO89b, CHC90, Simo96] but the contribution offered by this valuable work to practical standards and definitions has largely been overlooked. Quite natural definitions of class (6) and type (5) fall out of this work, which have yet to be appreciated by the object oriented mainstream. It is a common misperception that ....
....of recursive definitions see [Simo96] for a recent theoretical treatment of a similar example. We assume that define introduces a generator [CoPa89] and then implicitly takes the fixpoint, for recursive definitions. 2 Technically, this object is a functional closure, in the tradition of [CCHO89a, CCHO89b, CHC90]. Object state may be modelled as the variables within the static scope of the functional closure when it was defined. Let s Agree on the Meaning of Class, page 6 to demonstrate how methods may in general refer to each other, remembering that all methods must be selected from the object (here, ....
[Article contains additional citation context not shown here]
P Canning, W Cook, W Hill, W Olthoff and J Mitchell (1989), 'F-bounded polymorphism for objectoriented programming', Proc. 4th Int. Conf. Func. Prog. Lang. and Arch., Imperial, London, September, 273-280.
....arguments must be supertypes (contravariance) This ensures that objects of type Y can safely be passed to variables of type X. Ironically, Cook discovered the Eiffel type failure problem while researching an alternative mathematical model of class inheritance, F bounded quantification [Cook 89a, Canning 89a, Canning 89b] which is different from subtyping [Cook 90] F bounds were devised chiefly to explain the evolution of the self type under inheritance, but can also be used to explain other anchored type declarations [Simons 94a] In the F bounded approach, classes are type families characterised ....
....type of each new inheriting class [Szypersky 93] This means that inherited functions returning results in the type SAME are considered subtype functions, so long as SAME does not also occur as an argument type. At around the same time, work by Cook, Canning, Hill, Olthoff and Mitchell [Cook 89a, Canning 89a, Canning 89b, Cook 89c, Cook 90] showed that bounded quantification did not deliver useful type signatures for polymorphic functions in the context of recursive types. Their F bounded quantification, a higher order subtyping theory, delivers more appropriate types for the same polymorphic ....
[Article contains additional citation context not shown here]
P Canning, W Cook, W Hill, W Olthoff and J Mitchell (1989), 'F-bounded polymorphism for object-oriented programming', Proc. 4th Int. Conf. Func. Prog. Lang. and Arch., Imperial College London, September, 273-280.
....public XList asXThis( return this; and similarly for LenXList. The types work out because XThis is instantiated to XList in XList. This translation of virtual types into parameterised types closely resembles the usual semantics of object oriented features in terms of F bounded polymorphism [CCHOM89]. 3 Providing virtual types statically In this section of the paper we present a proposal for extending Java with a construct which is similar to virtual types, but which can be statically type checked with rules which can be easily understood by programmers. In particular we show that if I 1 , ....
Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John C. Mitchell, Fbounded polymorphism for object-oriented programming. In Conference on Functional Programming Languages and Computer Architecture, pages 273--280, ACM, 1989.
....binary methods, such as an add method on Number objects. The problems arise when classes containing binary methods are subclassed: in this process the type of self changes, and some notion of operator polymorphism or F bounded polymorphism is needed to capture this behavior type theoretically [9, 6]. In addition the object types are self referential (e.g. the type of the argument to add is the same as the object s type) so a form of recursive self referential type is also needed. We define a polymorphic, constraint based type inference algorithm for an object oriented language, I Loop. Our ....
....oe are either monomorphic types or quantified rc types: oe : j 8ff: These types are a straightforward generalization of Hindley Milner let polymorphic types to incorporate constraint sets. Since = n C can contain an arbitrary collection of constraints C, an F bounded quantified type [6] written 8t : 0 may be expressed by a polymorphic rc type 8t: 0 n ft g. Next we need to define when a set of constraints C is consistent. If C is consistent, n C is a sensible type. The definition of consistency we use is somewhat unusual: the constraints are considered consistent ....
P. Canning, W. Cook, W. Hill, J. Mitchell, and W. Olthoff. Fbounded polymorphism for object-oriented programming. In Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pages 273--280, 1989.
....Email: A.Simons dcs.shef.ac. uk Abstract Cardelli and Wegner developed a simple theory of object subtyping which was later to form the basis for a second order theory of bounded quantification [Card84, CW85, Ghel90] and the higher order theory of F bounded quantification explored by Cook and others [CCHO89a, CHC90]. In all of these presentations, the abstract type of objects is only expressed syntactically, in terms of an external interface of function signatures. Here, we re introduce semantic descriptions for objects, in terms of sets of axioms constraining the operation of some invocations of their ....
....contravariance to describe the typing relationships which have to exist between two objects methods for the objects to enter into subtyping relationships. Many interesting and useful theories describing strongly typed inheritance in object oriented programming have been developed from this work [CW85, Card86, Card88a, Card88b, CL91, Cook89a, CCHO89a, CCHO89b, CP89, CHC90], although not all of these treat inheritance as as subtyping. We shall show how subtyping has a role to play in each of these theories. In all these theories, the type of objects is expressed in a syntactic way, as a set of exported function signatures owned by the type. We see advantages in ....
[Article contains additional citation context not shown here]
P Canning, W Cook, W Hill, W Olthoff and J Mitchell (1989), 'F-bounded polymorphism for object-oriented programming', Proc. 4th Int. Conf. Func. Prog. Lang. and Arch., Imperial College London, September, 273-280.
....implements and an interface or extends and a class. The bounding interface or class may itself be parameterized, and may include type variables appearing elsewhere in the parameter section. Recursion or mutual recursion between parameters is allowed that is, GJ supports F bounded polymorphism [CCHOM89]. Omitting a bound is equivalent to using the bound Object. 3 Translating GJ To translate from GJ to the Java programming language, one replaces each type by its erasure. The erasure of a parametric type is obtained by deleting the parameter (so LinkedList A erases to LinkedList) the erasure of ....
Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John C. Mitchell. Fbounded polymorphism for object-oriented programming. Functional Programming Languages and Computer Architecture, pages 273--280, ACM, 1989.
No context found.
Peter Canning, William Cook, Walter Hill, Walter Oltho#, and John C. Mitchell. Fbounded polymorphism for object-oriented programming. Functional Programming Languages and Computer Architecture, pages 273--280, ACM, 1989.
No context found.
Peter Canning, William Cook, Walt Hill, John Mitchell, and Walter Olthoff. Fbounded polymorphism for object-oriented programming. In Proc. of Conf. on Functional Programming Languages and Computer Architecture, pages 273--280, 1989. Also Technical Report STL-89-5, Hewlett-Packard Labs.
No context found.
P. Canning, W. Cook, W. Hill, W. Olthoff, J. Mitchell "F-bounded Polymorphism for Object-oriented Programming", Proc. Functional Programming Languages and Computer Architecture, pp.273-280, 1989.
No context found.
Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John C. Mitchell. Fbounded polymorphism for object-oriented programming. In Functional Programming Languages and Computer Architecture, pages 273--280, September 1989.
No context found.
Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John C. Mitchell. Fbounded polymorphism for object-oriented programming. In Functional Programming Languages and Computer Architecture, pages 273-- 280, September 1989.
No context found.
Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John C. Mitchell. Fbounded polymorphism for object-oriented programming. In Functional Programming Languages and Computer Architecture, pages 273--280, September 1989.
No context found.
Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John C. Mitchell. Fbounded polymorphism for object-oriented programming. In Functional Programming Languages and Computer Architecture, pages 273--280, September 1989.
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