| Kathleen Fisher and John C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1:189--220, 1996. |
....A prototype can be sealed to reach the status of proper object (see Section 8.3.4) to which subtyping applies, but then it is no longer extensible or overrideable. This restriction is to avoid the well known unsoundness that arises when combining object operations with subsumption (c.f. [FM95b]) The type syntax is as follows: Types: unit j j 1 2 j pro R j obj R j 8(r : w R : L) j 9(r : w R : L) Rows: R : r j hhii j hhR j l : ii Kinds: fl : T j L All : A countable set of method and field labels. L : L All; L finite Types include the unit type, ....
K. Fisher and J.C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1995. Preliminary version appeared in TACS '94 proceedings.
.... which are themselves fully polymorphic functions (and the parameters of those fully polymorphic functions may themselves be fully polymorphic functions, ad in nitum) Various calculi which model the type systems of object oriented programming languages have been studied in great detail [21, 85]. Various other language extensions such as type classes [27, 43, 47, 75, 82] and existential types [51] have also traditionally been formulated in a form of calculus. Given the connection between functional programming and calculus, it is not surprising that modern functional programming ....
....a system of constructors which support the automatic initialisation of objects) A pure logic programming language, however, has no such construct. The entities in a logic programming language are all logical terms (including higher order terms) We can take some inspiration here from work such as [21, 33, 78, 85] which investigate type theoretic models of the constructs found in object oriented languages. First of all, it is necessary to consider the issue of state. Objects in traditional, imperative object oriented languages are inherently stateful. When we invoke a method on an object that somehow ....
Kathleen Fisher and John C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1:189-220, 1996.
....of the natural extension of type system F deals with subtyping, a simple version of such a system is F . The description of this system is described for example in [3] A further extension of F introduces records [5] it is mainly used to formulate models for object oriented systems [1,4]. The syntax of record type, record term construction and record term selection are as follows: type : fj name 1 : type 1 ; namen : type n jg term : f name 1 = term 1 ; namen = termn g j term : name Now we will extend the rule system F ....
Kathleen Fisher, John C. Mitchell, The Development of Type Systems for Object-Oriented Languages, Stanford University, STAN-CS-TN-96-30
....class, but one apparently cannot modify the state of the object during its life time (see for instance [2] Section 6.7.2) This is because in creating the object, the self parameter is bound too early. Wand s model is an instance of what is known as the recursive record semantics for objects (see [21]) initiated by Cardelli [11] Based on this idea that an object is the xpoint of an instantiated class, Cook proposed a more elaborate model [14] where updating the state of an object is possible, by creating new objects, instances of the same class. Then a class is also recursive in Cook s ....
....(that is, self) of all its pre methods have the same type. In other words, one must have in this approach specic constructs for objects and object types, depending on the type of self, thus dioeerent from record types. This has been developed in object calculi, most notably by Fisher and Mitchell [19, 20, 21] (who call it ithe axiomatic approachj) and Abadi and Cardelli [1, 2] but as we already noticed, in calculi that support a rich form of inheritance, and in particular object extension, like [20] the type theory which is used is quite elaborate, and does not support implicit typing. RR n# 4199 ....
[Article contains additional citation context not shown here]
K. Fisher, J. Mitchell, The development of type systems for object-oriented languages, Theory and Practice of Object Systems Vol. 1, No. 3 (1995) 189-220.
.... ffl Recursive Existential type Rec(t)Some(s) s (s I(t) ffl Recursive Bounded Existential type Rec(t)Some(u :t) u (u I(u) Here we will recapitulate the development of the first and simplest of these modules, using recursive record types, roughly following the development in [13]. We start with a simple example of an object and progressively add features and capabilities. The object starts as a simple cell containing an instance variable that can be accessed and changed through get and set methods. Object as record of functions. Our Cell object is modeled as a record ....
Kathleen Fisher and John C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1996. ftp://theory.stanford.edu/pub/kfisher/tapos.ps.
....typed. In the type system of Obj1 OE: the object types has the following form: m i : oe i ] i2I , where we assume that the m i (i 2 I) be distinct and that permutations do not matter. When a method m i is invoked, it produces a result having the corresponding type oe i . As clearly stated in [13, 4], subtyping is unsound when we allow objects to be extended. As a simple example of this problem, suppose to allow extension on objects and let point 4 = x = s)1; y = s)s:x] 1) of type point : x : nat; y : nat] 5 By subsumption (we allow for width subtyping, i.e. an object with ....
K. Fisher and J. C. Michell. The Development of Type Systems for Object Oriented Languages. Theory and Practice of Objects Systems, 1(3):189--220, 1995. 21
.... (s is state representation) ffl Recursive Existential type Fix(t)Some(s) s (s I(t) ffl Recursive Bounded Existential type Fix(t)Some(u :t) u (u I(t) Here we will recapitulate the development of the first and simplest of these modules, using recursive record types (following [12]) We will do this by starting with a simple example of an object and progressively add features and capabilities. The object starts as a simple cell containing in instance variable that can be accessed and changed through get and set methods. Object as record of functions. Our Cell object is ....
Kathleen Fisher and John C. Mitchell. The development of type systems for objectoriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1996. ftp://theory.stanford.edu/pub/kfisher/tapos.ps.
....be promoted to the correspondent weak type (rule [StrictWeakSub] Hereafter, unqualified object type stands for the weak version. The use of strict and weak types to type update and query operations respectively was first proposed in [Ghe90] and developed independently, for object update, in [FM96]; it is also strictly connected with the idea of row variables . Weak object subtyping also allows the current role to be promoted to a super role. This happens because we want, for example, to be able to write a function to print the name of a person as follows, and then to apply it to students ....
....contains less fields than those in the denoted record, which makes it impossible to be sure that a field f is not already present, maybe with an incompatible type. The proposed solutions range from the assignment of 12 two types to a record, one exact and the other where fields may be forgotten [FM96], to richer type systems where both the presence and absence of fields may be reported [CM91, R em89, JM88] to systems where the dependencies among different methods are tracked [Liq97] Preventing incompatible updates is also a problem for us, but it is not our central concern, hence we will ....
[Article contains additional citation context not shown here]
Kathleen Fisher and John Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1996.
....[Upd] hence we gain deep subtyping on weak types (rule [WeakSub] Hereafter, unqualified object type stands for the weak version. The use of strict and weak types to type update and query operations respectively was first proposed in [Ghe90] and developed independently, for object update, in [FM96]; it is also strictly connected with the idea of row variables . Weak object subtyping also allows the current role to be promoted to a super role. This happens because we want, for example, to be able to write a function to print the name of a person as follows, and then to apply it to students ....
....contains less fields than those in the denoted record, which makes it impossible to be sure that a field f is not already present, maybe with an incompatible type. The proposed solutions range from the assignment of two types to a record, one exact and the other where fields may be forgotten [FM96], to richer type systems where both the presence and absence of fields may be reported [CM91, R em89, JM88] to systems where the dependencies among different methods are tracked [Liq97] Preventing incompatible updates is also a problem for us, but it is not our central concern, hence we will ....
[Article contains additional citation context not shown here]
Kathleen Fisher and John Mitchell. The development of type systems for objectoriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1996.
.... a new HOL type has to be declared for every record type, no meta theory in HOL) HOL Z (syntactic layer on top of HOL, no meta theory in HOL) Functional programming languages with records and objects [7, 10] Object calculi [1] and type systems for object oriented languages [3]. Project LOOP (Logic of Object Oriented Programming [6] Project Bali (Formalisation of Java Aspects in Isabelle HOL, 8] Project Outline . Theoretical work: formulation of extended type systems, consistency proofs, completeness proofs. Practical work: implementation of extended ....
Kathleen Fisher and John C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189-- 220, 1996.
....types are included; they can be used to model pointers and arrays. Objects can be modelled by records with procedure elds, but the type system is like Oberon s, requiring use of type tests and explicit coercions (casts) more like Java than like the most expressive object oriented languages [1, 20]. A full programming calculus is beyond the scope of this paper. A formal language is given for predicates (because they appear in prescriptions) but not a formal system of proof rules. We just prove selected semantic results that are essentially validations of proof rules and program ....
....it has type U such that U b U 0 . 6 b would not be antisymmetric if parameter names were not signi cant; see Section 9. 6 On the face of it, the subtyping relation on procedure types in Io is restrictive as compared with covariant and contravariant subtyping in some languages and theories [13, 1, 20]. Moreover, there is no subsumption rule. The main reason for not using contravariance for function arguments and value parameters 7 is that b would not correspond exactly to in the semantics. There are evident coercion functions that could be used to interpret b and to interpret a general ....
[Article contains additional citation context not shown here]
K. Fisher and J. C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3), 1995.
....compares several object encodings with respect to the object oriented constructions that they can express and the properties that they enjoy. A main difference of approach in this paper is in the use of type operators to represent different encodings more uniformly. A paper by Fisher and Mitchell [FM96] see also [FM94] gives a general tutorial on type systems for object oriented languages. It describes the origins and evolution of the recursive and existential encodings, and compares them with an axiomatic presentation of objects. 2 Technical Preliminaries The ambient type theory in which ....
Kathleen Fisher and John Mitchell. The development of type systems for objectoriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1996.
....type C 0 was expected, and it will not result in an object being sent a message it does not understand. Designing type systems that are both expressive and provably safe requires some care. The exploration of such type systems for object oriented languages has been a continuing area of interest [1, 3, 4, 5, 8, 12, 30]. An intuitive basis for subtyping in object oriented systems is given by Wegner and Zdonik [42] An instance of a subtype can always be used in any context in which an instance of a supertype was expected. While static type systems can protect against some violations of this principle, they ....
Kathleen Fisher and John C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1995.
....of all sets B i with i # S . No simple typed formalism that we know of admits S B i : i # S as a type. It is a set in a typed set theory only if B i has the same type for all i in S , which might require the use of disjoint sums. Object oriented type theories are being investigated [11], and perhaps a simple, elegant one can be found. However, objects are just one example of the diverse mathematical concepts that arise in real specifications. In the application that led to this example, objects were needed to represent the system, not because we wanted to write an ....
Kathleen Fisher and John C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189-- 220, 1995.
....4.4 Type System In the following subsections we briefly sketch the design of the CLOVER type system. Our prototype currently supports simple type matching rather than full type inference (which is left for further work) For an introduction and review of types in object oriented programming, see [FM95]. Type syntax: A type is either an object, a message (which has function type) or a bracketed message. The explicit bracketing is necessary to denote a function type being returned from a method this facilitates identification of the distinguished object (the last argument to a method) Each ....
K. Fisher, J. Mitchell. The Development of Type Systems for Object-Oriented Languages. Theory and Practice of Object Systems, 1(3) (1995) 189-220
....encodings of objects. To address this shortcoming, several extensions and refinements of F have been proposed, including extensions to higher order polymorphism [Car90, CL91, PT94, HP95b, PS94, Com94] and a number of 2 special purpose second order systems, among them systems with record update [CM91, Car92, FM96, Pol96, HP95a], structural unfolding for recursive types [AC96] and polymorphic repacking for existential types [Pie96] What the latter group of extensions have in common is that their soundness is intuitively argued for by using an internalisation of the generation lemma for subtyping: every concrete ....
Kathleen Fisher and John Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1996.
....A prototype can be sealed to reach the status of proper object (see Section 3.4) to which subtyping applies, but then it is no longer extensible or overrideable. This restriction is to avoid the well known unsoundness that arises when combining object operations with subsumption (c.f. [20]) The type syntax is as follows: Types: # : unit # 2 pro R obj R #(r : Rows: R : r #### ##R l:### Kinds: # : T All : A countable set of method and field labels. L : L All Types include the unit type, constant types, function types, object types of the ....
K. Fisher and J.C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1995. Preliminary version appeared in TACS '94 proceedings. 470
....full in [Fis96] For brevity and to present the major design issues as clearly as possible, we do not repeat the technical details in this paper. The interested reader may consult our previous publications [FHM94, FM95a] for discussions of type soundness proofs for extensible object calculi, and [FM95b] for a general discussion of type systems, object calculi, and objectoriented programming. An alternate view of many of these issues may be found in the excellent book by Abadi and Cardelli [AC96b] The remainder of this paper is structured as follows. In the next section, we discuss the use of ....
....is known. If we want to statically check delegation, a run time form of inheritance based on individual objects instead of classes, then it is necessary to include both presence and absence of components as part of the static type system. This complicates subtyping, as discussed in [FHM94, FM95b, FM95a] for example. 2.3 Access Restrictions Classes typically provide access controls, which are used to restrict the visibility of various object components. Some common visibility levels are private, for use only within a given class implementation; protected, for use only by derived ....
[Article contains additional citation context not shown here]
K. Fisher and J.C. Mitchell. The development of type systems for objectoriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1995. Preliminary version appeared in TACS '94 proceedings.
No context found.
K. Fisher and J.C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1995. Preliminary version appeared in TACS '94 proceedings.
....A prototype can be sealed to reach the status of proper object, to which width and depth subtyping applies, but then it is no longer extensible or overridable. This restriction is to avoid the well known unsoundness that arises when combining object operations with subsumption (see for example [FM95b]) Object types are used in conjunction with existentially quantified types to type encapsulated extensible objects, which we use to model class hierarchies. The type syntax is as follows: Types: unit j j 1 2 j pro R j obj R j 8(r : w R : L) j 9(r : w R : L) Rows: R : r ....
K. Fisher and J.C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1995. Preliminary version appeared in TACS '94 proceedings.
....in full in [21] For brevity and to present the major design issues as clearly as possible, we do not repeat the technical details in this paper. The interested reader may consult our previous publications [22, 23] for discussions of type soundness proofs for extensible object calculi and [24] for a general discussion of type systems, object calculi, and object oriented programming. An alternate view of many of these issues may be found in the book by Abadi and Cardelli [4] The remainder of this paper is structured as follows. In the next section, we discuss the use of classes in ....
....declaration is known. If we want to statically check delegation, a run time form of inheritance based on individual objects instead of classes, then it is necessary to include both presence and absence of components as part of the static type system. This complicates subtyping, as discussed in [22, 24, 23], for example. 2.3. Access Restrictions Classes typically provide access controls, which are used to restrict the visibility of various object components. Some common visibility levels are private, for use only within the class implementation; protected, for use only by derived classes; and ....
K. Fisher and J.C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1995. Preliminary version appeared in TACS '94 proceedings.
No context found.
Kathleen Fisher and John C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1:189--220, 1996.
No context found.
K. Fisher and J. C. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1:189--220, 1996.
No context found.
K. Fisher and J. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems, 1(3):189--220, 1996.
No context found.
K. Fisher and J. Mitchell. The development of type systems for object-oriented languages. Theory and Practice of Object Systems (TAPOS), 1(3):189--220, 1995.
First 50 documents
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