| Mirko Viroli and Antonio Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000. |
....by structural properties ( where clauses) Another project, AFM97] adds run time compatible parameterized types to Java, but requires a modified ClassLoader. A third proposal [SA98] implements homogeneous translation based on reflection that requires modifications to the JVM. Finally, LM [VN00] improves the run time e#ciency of a purely reflective solution by caching the results of most reflective calls in static instance variables. 3.4 Evaluating Proposals The number of proposed extensions to Java suggests that key changes to the type system are needed as the language evolves. ....
....problems with operations that require run time type information while staying within the paradigm of the homogeneous translation. However, because it uses reflection to access information about run time types, the translation is less e#cient than either GJ or NextGen. One recent proposal, LM, VN00] suggests that an approach based solely on reflection can be optimized by resolving many of of the instantiations of parameterized classes at load time. In this section, rather than discuss the specifics of LM s translation, we describe the key concepts as they would work if extended to Rupiah. ....
[Article contains additional citation context not shown here]
Mirko Viroli and Antonio Natali. Parametric polymorphism in Java: an approach to translation based on reflective features. In Object-Oriented Programming: Systems, Languages, Applications (OOPSLA), Minneapolis, October 2000. ACM. 38, 65, 100
....[14] and for program understanding [2] In ownership type systems, programmers parameterize classes and methods by owners. This enables the writing of generic code that can be used in many di erent contexts. The parameterization is somewhat similar to the proposals for parametric types for Java [1, 8, 16, 18]. Ownership type systems are primarily static type systems. The type checker uses the ownership type annotations to statically ensure the absence of certain classes of errors (e.g. data races in PRFJ [6] but it is usually unnecessary to preserve the ownership information at runtime. However, ....
....is supported by creating specialized classes methods, each supporting a di erent instantiation of a parametric class method. But since the parameters in ownership types are usually objects, this approach will lead to an unacceptably large number of classes methods. In the type passing approach [16, 18, 17], information on type parameters is explicitly stored in objects and passed to code requiring them. But if the system stores the owners of every object at runtime, this approach has the potential drawback of adding a perobject space overhead. Java objects are typically small, so adding even a ....
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
....augmented with ownership types. Every class de nition in our system is parameterized with one or more owners. The rst owner parameter is special: it owns the this object. The other owner parameters are Our way of parameterizing is similar to the proposals for parametric types for Java [42, 11, 1, 50]. The di erence is that our parameters are values and not other types. 2 3 TNode this, TOwner head = null; 4 5 void push(T TOwner value) 6 TNode this, TOwner newNode = new TNode this, TOwner ; 7 newNode.init(value, head) 8 head = newNode; 9 10 T TOwner pop( 11 if (head = ....
....compositional interprocedural analysis and verify similar properties. In contrast to these systems that take exponential time for veri cation, ownership types provide a lightweight and practical way to constrain aliasing. Our type system is similar to proposals for parametric types for Java [42, 11, 1, 50]. The di erence is that our parameters are values and not other types. Moreover, our type system ts naturally in a language with parameterized types. 6 Conclusions Object oriented databases provide a simple yet powerful programming model that allows applications to store objects reliably so that ....
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
....fully staticallytyped language. It allows downcasts that are checked at runtime. Suppose an object with declared type Object#o# is downcast to Vector#o,e#. We cannot verify at compile time that e is the right owner parameter even if we assume that the object is indeed a Vector. We use type passing [45] to support safe runtime downcasts, but we only keep runtime ownership and lock level information for objects that are potentially involved in downcasts to types with multiple parameters. A companion technical report [5] describes how to do this e#ciently without much space or time overhead. Note ....
....cannot be a subtype of Object#thisOwner#. Moreover, one cannot express constructs like iterators in these systems. Ownership Types With Subtyping [12] JOE [12] builds on previous work in [14, 13] JOE supports a natural form of subtyping that is similar to subtyping in parametric type systems [41, 8, 1, 45]. A subtype can have di#erent owners than a super type. However, the first owners must match because the first owners own the corresponding object. To support subtyping, JOE enforces the constraint that in every type T #o1 , on# with multiple owners, o1 o i ) for all i # 1. n . Recall ....
[Article contains additional citation context not shown here]
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Applications (OOPSLA), October 2000.
....augmented with ownership types. Every class definition in our system is parameterized with one or more owners. The first owner parameter is special: it owns the this object. The other owner parameters are Our way of parameterizing is similar to the proposals for parametric types for Java [42, 11, 1, 50]. The di#erence is that our parameters are values and not other types. 2 3 TNode this, TOwner head = null; 4 5 void push(T TOwner value) 6 TNode this, TOwner newNode = new TNode this, TOwner ; 7 newNode.init(value, head) 8 head = newNode; 9 10 T TOwner pop( 11 if (head = ....
....compositional interprocedural analysis and verify similar properties. In contrast to these systems that take exponential time for verification, ownership types provide a lightweight and practical way to constrain aliasing. Our type system is similar to proposals for parametric types for Java [42, 11, 1, 50]. The di#erence is that our parameters are values and not other types. Moreover, our type system fits naturally in a language with parameterized types. 6 Conclusions Object oriented databases provide a simple yet powerful programming model that allows applications to store objects reliably so ....
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
....to Vector#o,e#. We cannot verify at compile time that e is the right owner parameter even if we assume that the object is indeed a Vector. We use type passing to support safe runtime downcasts. Our technique is similar to the technique for implementing parametric polymorphism in Java described in [27]. We only keep runtime ownership and lock level information for objects that are potentially involved in downcasts to types with multiple parameters. To gain preliminary experience, we implemented several Java programs in our system. These include elevator, a real time discrete event simulator ....
....concept of object ownership used in this paper is similar to the one in ownership types [9, 8] Ownership types were motivated by software engineering principles and were used to restrict object aliasing. Our way of parameterizing classes is similar to the proposals for parametric types for Java [24, 4, 1, 27], except that the parameters in our system are values and not types. Our use of where clauses is somewhat similar to the use of where clauses in [11, 24] Our accesses clauses and locks clauses are similar to type and e#ect systems [23] 14 Conclusions Multithreaded programming is di#cult and ....
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
....programs with explicit deallocation. In ownership type systems, programmers can parameterize classes and methods by owners. This enables the writing of generic code that can be used in many di erent contexts. The parameterization is somewhat similar to the proposals for parametric types for Java [17, 6, 1, 19]. Ownership type systems are primarily static type systems. The type checker uses the ownership type annotations to statically ensure the absence of certain classes of errors (e.g. data races in PRFJ, memory errors in Cyclone) but it is usually unnecessary to preserve the ownership information ....
....is supported by creating specialized classes methods, each supporting a di erent instantiation of a parametric class method. But since the parameters in ownership types are usually objects, this approach will lead to an unacceptably large number of classes methods. In the type passing approach [17, 19, 18], information on type parameters is explicitly stored in objects and passed to code requiring them. But if the system stores the owners of every object at runtime, this approach has the potential drawback of adding a perobject space overhead. Java objects are typically very small, so adding even a ....
[Article contains additional citation context not shown here]
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
....in various ways. In each case, the best way to implement the extension requires JVM modifications. Other JVM compatible implementations either compromise on the semantics of the system or involve significant performance penalties or both. 2. 1 Parameterized Types for Java Parametric polymorphism [37, 1, 8, 10, 49] is recognized as a key language mechanism for augmenting the expressiveness and safety of a programming language. It provides the ability to abstract a piece of code from one or more types, making the code reusable in many di#erent contexts. Many JVM compatible approaches have been proposed to ....
....by creating specialized classes methods, each supporting a di#erent instantiation of a parametric class method. This technique supports a more expressive form of parameterized classes than type erasure, but it often leads to an unacceptable footprint in memory and disk space. 3. Type passing [37, 49]: In this technique, information on type parameters is explicitly passed to code requiring them. This technique involves significant space and time overhead at runtime. The lesson in each case appears that if the virtual machine does not support polymorphism, the end result will su#er. While ....
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
....programs with explicit deallocation. In ownership type systems, programmers can parameterize classes and methods by owners. This enables the writing of generic code that can be used in many di#erent contexts. The parameterization is somewhat similar to the proposals for parametric types for Java [17, 6, 1, 19]. Ownership type systems are primarily static type systems. The type checker uses the ownership type annotations to statically ensure the absence of certain classes of errors (e.g. data races in PRFJ, memory errors in Cyclone) but it is usually unnecessary to preserve the ownership information ....
....is supported by creating specialized classes methods, each supporting a di#erent instantiation of a parametric class method. But since the parameters in ownership types are usually objects, this approach will lead to an unacceptably large number of classes methods. In the type passing approach [17, 19, 18], information on type parameters is explicitly stored in objects and passed to code requiring them. But if the system stores the owners of every object at runtime, this approach has the potential drawback of adding a perobject space overhead. Java objects are typically very small, so adding even a ....
[Article contains additional citation context not shown here]
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
....in various ways. In each case, the best way to implement the extension requires JVM modi cations. Other JVM compatible implementations either compromise on the semantics of the system or involve signi cant performance penalties or both. 2. 1 Parameterized Types for Java Parametric polymorphism [37, 1, 8, 10, 49] is recognized as a key language mechanism for augmenting the expressiveness and safety of a programming language. It provides the ability to abstract a piece of code from one or more types, making the code reusable in many di erent contexts. Many JVM compatible approaches have been proposed to ....
....by creating specialized classes methods, each supporting a di erent instantiation of a parametric class method. This technique supports a more expressive form of parameterized classes than type erasure, but it often leads to an unacceptable footprint in memory and disk space. 3. Type passing [37, 49]: In this technique, information on type parameters is explicitly passed to code requiring them. This technique involves signi cant space and time overhead at runtime. The lesson in each case appears that if the virtual machine does not support polymorphism, the end result will su er. While ....
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
....to Vectorho,ei. We cannot verify at compile time that e is the right owner parameter even if we assume that the object is indeed a Vector. We use type passing to support safe runtime downcasts. Our technique is similar to the technique for implementing parametric polymorphism in Java described in [27]. We only keep runtime ownership and lock level information for objects that are potentially involved in downcasts to types with multiple parameters. To gain preliminary experience, we implemented several Java programs in our system. These include elevator, a real time discrete event simulator ....
....concept of object ownership used in this paper is similar to the one in ownership types [9, 8] Ownership types were motivated by software engineering principles and were used to restrict object aliasing. Our way of parameterizing classes is similar to the proposals for parametric types for Java [24, 4, 1, 27], except that the parameters in our system are values and not types. Our use of where clauses is somewhat similar to the use of where clauses in [11, 24] Our accesses clauses and locks clauses are similar to type and e ect systems [23] 14 Conclusions Multithreaded programming is dicult and ....
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
....to Vectorho,ei. We cannot verify at compile time that e is the right owner parameter even if we assume that the object is indeed a Vector. We use type passing to support safe runtime downcasts. Our technique is similar to the technique for implementing parametric polymorphism in Java described in [27]. We only keep runtime ownership and lock level information for objects that are potentially involved in downcasts to types with multiple parameters. To gain preliminary experience, we implemented several Java programs in our system. These include elevator, a real time discrete event simulator ....
....concept of object ownership used in this paper is similar to the one in ownership types [9, 8] Ownership types were motivated by software engineering principles and were used to restrict object aliasing. Our way of parameterizing classes is similar to the proposals for parametric types for Java [24, 4, 1, 27], except that the parameters in our system are values and not types. Our use of where clauses is somewhat similar to the use of where clauses in [11, 24] Our accesses clauses and locks clauses are similar to type and e ect systems [23] 14 Conclusions Multithreaded programming is dicult and ....
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
....of support for parametric polymorphism in the CLR. In its initial release, the CLR has no support for polymorphism, an omission shared by the JVM. Of course, it is always possible to compile away polymorphism by translation, as has been demonstrated in a number of extensions to Java [14, 4, 6, 13, 2, 16] that require no change to the JVM, and in compilers for polymorphic languages that target the JVM or CLR (MLj [3] Haskell, Eiffel, Mercury) However, such systems inevitably suffer drawbacks of some kind, whether through source language restrictions (disallowing primitive type instantiations to ....
....for Napier88, where exact 10 types are required to support typesafe persistence [7] Connor rejects the use of dynamic compilation as too slow the widespread acceptance of JIT compilation now makes this possible. Much closer to our work is the extension to Java described by Viroli and Natali [16]. They live with the existing JVM but tackle the combination of code sharing and exact run time types by using reflection to manage their own type descriptors and dictionaries of instantiated open types, which they call friend types . Such friend types are constructed when a new instantiation is ....
M. Viroli and A. Natali. Parametric polymorphism in Java: an approach to translation based on reflective features. In Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM, October 2000.
No context found.
Mirko Viroli and Antonio Natali. Parametric polymorphism in Java: an approach to translation based on reflective features. In Proc. of ACM OOPSLA, pages 146-- 165, Oct 2000.
....been recognized to be a serious limitation of expressiveness [4] thus many proposals for the extension of Java have been studied. They can be mainly divided in two groups: the proposals for extension of the Java Virtual Machine (JVM) or of parts of it [2, 7, 12] and the translation approaches [11, 3, 10, 13]. In the former case compatibility with existing Virtual Machines is lost, although they generally lead to more e#cient implementations. The translation approaches on the contrary, may introduce a significant overhead in both space and time, but do not a#ect in any way the Virtual Machine, then ....
....which has in fact received more interest. Two important issues that greatly influence the design of a translator are (i) the full integration of parametric types with the core typing and (ii) performance. At this time the proposal that seems to better address these issues is LM translator [13]. It uses the basic idea of carrying type information at run time through objects representing types, in a framework which is a mixture of previous approaches. It relies on the erasure technique as GJ translator [11] does, it uses type information created by the translator in a similar way to ....
[Article contains additional citation context not shown here]
M. Viroli and A. Natali. Parametric Polymorphism in Java: an approach to translation based on reflective features. In Conference on Object-Oriented Programming, Systems, Languages and Applications, pages 146--165. ACM, Oct 2000.
.... [US80] C templates [ES90] and ML polymorphic functions or data types [Mil85, Ull94] Even Java, which initially didn t provide it, is due to be extended with this mechanism [S99] Several proposals for adding genericity to Java, by using parametric types, have in fact been recently published [VN00, SA98, CS98, AFM97, MBL97, OW97]. The two main issues that a compiler for parametric polymorphism should deal with are (i) run time performance and (ii) the integration of parametric types with the core typing. In order to obtain good results for both these aspects, the typical technique relies on gathering, in structures called ....
....set by ANSI ISO C , which is currently 17. NextGen and the heterogenous version of Pizza [OW97] have the same drawback. The ideas presented in this paper are part of a project for building a translator for parametric polymorphism in Java by not relying on the macro expansion technique, called LM [VN00]. In fact in the Java framework, where class files are often loaded through the net from a 3 remote computer, an important issue is that of keeping the size of class files as small as possible. The macro expansion technique does not give any guarantee to do so, since the size of a library can ....
[Article contains additional citation context not shown here]
Mirko Viroli, Antonio Natali, Parametric Polymorphism in Java: An Approach to Translation Based on Reflective Features. To appear in Conference on Object-Orientd Programmin, Systems, Languages and Applications, 2000. 13
No context found.
Mirko Viroli and Antonio Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
No context found.
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Applications (OOPSLA), October 2000.
No context found.
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
No context found.
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Applications (OOPSLA), October 2000.
No context found.
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
No context found.
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Applications (OOPSLA), October 2000.
No context found.
Mirko Viroli and Antonio Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
No context found.
Mirko Viroli and Antonio Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
No context found.
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
No context found.
M. Viroli, A. Natali. Parametric Polymorphism in Java: an Approach to Translation Based on Reflective Features. In OOPSLA 2000.
No context found.
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Applications (OOPSLA), October 2000.
No context found.
Viroli,, M. and A. Natali. Parametric Polymorphism in Java: an Approach to Translation Based on Reflective Features. In OOPSLA 2000.
No context found.
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.
No context found.
M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on re ective features. In Applications (OOPSLA), October 2000.
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