| Mads Togersen. Virtual types are statically safe. January 1998. |
....in FGJ [IPW99] By contrast, classes can be local in #Obj and nominal types are just one construction in an otherwise structural type system. There are two other attempts at formalizations of virtual or abstract types in object oriented programming that we are aware of. The first, by Torgersen [Tor98] sketches a nominal type system for virtual types. It argues informally that if certain restrictions are imposed on the usage of virtual types (which in fact makes them equivalent to abstract types in our terminology) type soundness can be ensured. Igarashi and Pierce [IP99] proposed a ....
Mads Torgersen. Virtual types are statically safe. In 5th Workshop on Foundations of Object-Oriented Languages, San Diego, CA, USA, January 1998.
....blocking covariance is not the only one: 25] added virtual types (or virtualmethods) to Java, in the style of the Beta language [20] This solution gives the possibility to covariantly specialize variables and method types, but it requires some extra run time type checks to ensure type safety. In [7, 26] the authors proposed, independently, two di erent solutions to make virtual methods statically safe. Recently, the LGM language [24] proposed another solution to the problem of covariance using Bruce s generalized matching [6] The experience we have with Match O shows that the cohabitation of ....
M. Togersen. Virtual Types are Statically Safe. In Electronic Proc. of FOOL-5, january 1998.
....Polymorphism [43] or process calculi [113, 112] just to present a sample. Comparisons of various approaches exist [37, 77] Features investigated include binary methods [36] multimethods and overloading [54, 56] mixins [81, 27] state [71] inheritance [64, 79, 164, for example] virtual types [116, 166, 189], method update overriding specialisation [3, 76, 75] object extension [76, 129, 26] primitive objects [2, 4, 3] privacy [171] classes [81, 28, 35] inner classes [117] MyType [35] and so forth. Programming languages which have been treated in detail include Java [70, 146, for example] ....
Mads Torgersen. Virtual types are statically safe. In 5th Workshop on Foundations of Object-Oriented Languages (FOOL), San Diego, CA, January 1998.
....and Steele have developed the NextGen design in tandem with GJ [CS98] Just as the Java programming language is a subset of GJ, so GJ is a subset of NextGen. A more detailed comparison with NextGen appears in the conclusion. Virtual types have been suggested as an alternative to parametric types [Tho97, Tor98]. A comparison of the relative strengths of parametric and virtual types appears elsewhere [BOW98] It may be possible to merge virtual and parametric types [BOW98, TT98] but it is not clear whether the benefits of the merger outweigh the increase in complexity. Status An implementation of GJ is ....
Mads Togersen. Virtual types are statically safe. 5th Workshop on Foundations of Object-Oriented Languages, January 1998.
....Graph.NodeType could be the class Node and ColoredGraph.NodeType could be the class ColoredNode. Virtual classes are similar to, but not equivalent with, type parameters of parameterized classes (such as template classes in C or generic classes in Eiffel) See [5] for examples, but also note [25]. The result of implementing this is the language gbeta, which is a generalization of the language Beta. Beta already offers the combination of general block structure, virtual classes, and a kind of method combination the INNER mechanism. INNER is similar to resending a message to super in ....
Mads Torgersen. Virtual types are statically safe. In 5th Workshop on Foundations of Object-Oriented Languages (FOOL), at http://pauillac.inria.fr/ ~remy/fool/program.html, January 1998.
....the heterogeneous approach, even if it actually uses a hybrid one, where one erased class for each parameterized class and one light wrapper class and one interface for each instantiation are created. Another way to add genericity to Java is through virtual types, which was proposed in [Tho97] [Tor98] and [BOW98] Here we focus on translations, and in particular on the homogeneous approach, that avoids the possible creation of a large number of class les with redundant information due to the di erent instantiation of parameterized classes. At the moment, heterogeneous translation is the only ....
Mads Togersen. Virtual types are statically safe. 5th Workshop on Foundations of ObjectOriented Languages, January 1998. 35
....to implement than erasure, and may be harder to interface with legacy code. As noted above, GJ is designed to extend smoothly if it is later judged practicable to use run time types. Virtual types have been suggested as an alternative to parametric types for increasing the expressiveness of types [Tho97, Tor98]. A comparison of the relative strengths of parameteric and virtual types appears elsewhere [BOW98] It may be possible to merge virtual and parametric types [BOW98, TT98] but it is not clear whether the benefits of the merger outweigh the increase in complexity. This paper is intended as a ....
Mads Togersen. Virtual types are statically safe. 5th Workshop on Foundations of Object-Oriented Languages, January 1998. 24
....to Java provide run time checks instead. Virtual types require creation of a subclass in place of instantiation of a polymorphic declaration in a language with type parameters; this seems to be an unnecessary burden on the programmer. Torgersen achieves static typechecking for virtual types [Torgersen 98] His code to express the typechecking situations in Section 3 looks quite similar to ours. He also notes the need for syntactic sugars to make code more concise in case of large class hierarchies. The recent work on local type inference in an extension of F [Pierce Turner 98] especially the ....
Mads Torgersen. Virtual types are statically safe. In 5th Workshop on Foundations of Object-Oriented Languages, January 1998.
....later. Bruce, Odersky, and Wadler [BOW98] analyzed the strengths and weaknesses of virtual types versus parametric polymorphism, and proposed a generalization of MyType (see section 4) which provides a construct similar to virtual types yet is statically type safe. Around the same time, Torgersen [Tor97] proposed a variant of virtual types which can roughly be explained as registering a type error everywhere where Beta would insert a run time check. The main disadvantage of this proposal was that it essentially required the creation of parallel class hierarchies. In one of these the type ....
....semantics were not discussed in that paper. In the same paper it was shown how to simulate virtual types with F bounded polymorphism, though in a very complex way. More recent work by Odersky, Wadler, and Smaragdakis [OWS98] has since resulted in a somewhat simpler F bounded encoding. Torgersen [Tor97] also has a proposal for restricting virtual types (essentially with mechanisms to restrict further changes to virtual types or to restrict the receiver to being of an exact type) to ensure static type safety. The construct described here and in [BOW98] is flexible enough that it should be ....
Mads Torgersen. Virtual types are statically safe. In Informal FOOL 5 electronic proceedings. http://pauillac.inria.fr/¸remy/fool/abstracts/5.html, 1997.
....Freund, and Mitchell have designed an extension of Java [AFM97] supporting parameterized classes assuming a revision of the class loader and an extension of the class file format to support parameterized class files. Thorup and Torgersen have proposed extending Java to support virtual types [Tho97,Tor98], which accommodates class specialization by narrowing virtual type members of classes. Among these proposals, only those of Odersky Wadler and Thorup Torgersen require no change to the existing Java Virtual Machine. Moreover, only the Odersky Wadler proposal has addressed the issue of forward ....
Mads Torgersen. Virtual types are statically safe. Fifth Workshop on Foundations of Object-Oriented Languages, January 1998.
....to implement than erasure, and may be harder to interface with legacy code. As noted above, GJ is designed to extend smoothly if it is later judged practicable to use run time types. Virtual types have been suggested as an alternative to parametric types for increasing the expressiveness of types [Tho97, Tor98]. A comparison of the relative strengths of parameteric and virtual types appears elsewhere [BOW98] It may be possible to merge virtual and parametric types [BOW98, TT98] but it is not clear whether the benefits of the merger outweigh the increase in complexity. This paper is intended as a ....
Mads Togersen. Virtual types are statically safe. 5th Workshop on Foundations of Object-Oriented Languages, January 1998.
....than erasure, and may be harder to interface with legacy code. Pizza is designed to extend smoothly if in future it is judge practicable to carry type information at run time. Virtual types have been suggested as an alternative to parametric types for increasing the exprssiveness of types in Java [Tho97, Tor98]. A comparison of the relative strengths of parameteric and virtual types appears elsewhere [BOW98] It may be possible to merge virtual and parametric types [BOW98, TT98] but it is not clear whether the benefits of the merger outweigh the increase in complexity. This paper is structured as ....
Mads Togersen. Virtual types are statically safe. Foundations of Object-Oriented Languages, January 1998.
....simultaneously. An important advantage of this language design is that all type checking can be done statically it does not require extra dynamic type checking, and the resulting type system guarantees type safety. A statically safe method to model virtual types was proposed by Torgersen [Tor98]. His work is similar to, but independent from ours. Where we write interface I (IThis) Torgersen would write: public interface I IThis = I; Instead of relying on exact types, Torgersen requires that a class containing a virtual type is final bound (so it cannot be redeclared in subclasses) ....
Mads Torgersen. Virtual types are statically safe. 5th Workshop on Foundations of Object-Oriented Languages, January 1998.
....and Steele have developed the NextGen design in tandem with GJ [CS98] Just as the Java programming language is a subset of GJ, so GJ is a subset of NextGen. A more detailed comparison with NextGen appears in the conclusion. Virtual types have been suggested as an alternative to parametric types [Tho97, Tor98]. A comparison of the relative strengths of parametric and virtual types appears elsewhere [BOW98] It may be possible to merge virtual and parametric types [BOW98, TT98] but it is not clear whether the benefits of the merger outweigh the increase in complexity. Status An implementation of GJ is ....
Mads Togersen. Virtual types are statically safe. 5th Workshop on Foundations of Object-Oriented Languages, January 1998.
....derived from is also a class. For this to work as a means to support genericity, classes should be able to contain partially abstract types, and subclasses should be able to complete these as part of the inheritance declaration. This kind of genericity is provided by virtual types [MMP89,Tho97,Tor98] Recent discussions have brought attention to the bene ts of either approach, most notably [BOW98] which suggests a language containing both mechanisms. Currently visiting Professor Akinori Yonezawa at University of Tokyo, Japan. Currently visiting Luca Cardelli at Microsoft Research, ....
....add virtual types to Java. Building on this, BOW98] suggest combining a limited version of virtual types with parameteric polymorphism to obtain the ability to express mutually recursive classes. Beta s virtual types allow some statically unsafe programs by inserting runtime type checks, but in [Tor98] Torgersen argues that such programs can be straightforwardly rewritten to become statically safe. Therefore Beta may be strengthened to reject such statically unsafe programs without loosing expressiveness. Throughout this paper we built on this result, assuming a virtual types mechanism which ....
Mads Torgersen. Virtual types are statically safe. In Kim Bruce, editor, 5th Workshop on Foundations of Object-Oriented Languages, San Diego, CA, January 1998.
No context found.
Mads Togersen. Virtual types are statically safe. January 1998.
No context found.
Mads Torgerson. Virtual types are statically safe. In 5th Workshop on Foundations of Object-Oriented Languages (FOOL), January 1998.
No context found.
Mads Torgersen. Virtual types are statically safe. In Proc. of the 5th Workshop on Foundations of Object-Oriented Languages (FOOL), San Diego, CA, January 1998. Available through http://www.cs.williams.edu/kim/FOOL/FOOL5.html.
No context found.
Mads Torgersen. Virtual types are statically safe. In Informal FOOL 5 electronic proceedings. http://pauillac.inria.fr/remy/fool/abstracts/5.html, 1997. 25
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