PL EN


Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Tytuł artykułu

Problemy klas generycznych w języku Java

Autorzy
Identyfikatory
Warianty tytułu
EN
Problems with generic classes in Java
Konferencja
Metody i narzędzia wytwarzania oprogramowania. Konferencja Naukowa (14-16.05.2007 , Szklarska Poręba)
Języki publikacji
PL
Abstrakty
PL
Do języka Java od wersji 5.0 wprowadzono klasy generyczne, czyli klasy parametryzowane innymi klasami. Na pierwszy rzut oka polimorfizm parametryczny w Javie przypomina szablony klas w języku C++, co zdaje się sugerować nawet składnia. Jest to jednak podobieństwo bardzo powierzchowne. Z jednej strony ułatwia wykorzystanie nowego mechanizmu programistom znającym C++; z drugiej jednak strony jest źródłem konfuzji spowodowanych inną semantyką klas generycznych w porównaniu z szablonami klas, wynikającą ze zupełnie innego sposobu ich implementacji. W niniejszej pracy podjęto próbę wyjaśnienia mechanizmu generyczności w Javie ze zwróceniem uwagi z jednej strony na istotne własności matematyczne, a z drugiej strony na semantykę, wynikającą ze sposobu zaimplementowania tego mechanizmu. Takie bardziej abstrakcyjne, lecz "inżynierskie" podejście do klas generycznych z pewnością ułatwi ich zrozumienie i będzie sprzyjać właściwemu zastosowaniu w praktyce.
EN
The most significant change made in Java programming language as implemented in JDK 5.0 and later versions was the addition of generic types (generics), which support classes with abstract type parameters that can be instantiated. Superficially generics in Java resemble templates in C++ which is suggested by the syntax. This is often the source of confusion, since the semantics is quite different. In this paper we shortly explain the most important mathematical properties of generics as well as the technique of erasure underlying the implementation of generics in Java.
Twórcy
autor
  • Instytut Informatyki Stosowanej, Politechnika Wrocławska, Wybrzeże Wyspiańskiego 27, 50-370 Wrocław
Bibliografia
  • [1] ABADI M., CARDELLI L., A Theory of Objects. Springer-Verlag, 1996.
  • [2] Bracha G., Generics in the Java Programming Language, http://java.sun.com/j2se/L5/pdf/generics-tutorial.pdf
  • [3] BRACHA G., ODERSKY M., STOUTAMIRE D., WADLER P.: Making the future safe for the past: Adding Genericity to the Java Programming Language. W: Proceedings of ACM Symposium on Object-Oriented Programming: Systems, Languages and Applications (OOPSLA), October 1998, 183-200.
  • [4] BRUCE K.B., Foundations of Object-Oriented Languages. Types and Semantics. MIT Press, 2002.
  • [5] COOK W.R., HILL W.L., CANNING P.S., Inheritance is not Subtyping. Proceedings of ACM Symposium on Pronciples of Programming Languages (POPL), ACM Press, 1990, pp. 125-135.
  • [6] CARDELLI L., Type Systems. Handbook of Computer Science and Engineering. Red. Tucker A.B., CRC Press, 1997, pp. 2208-2236.
  • [7] CARDELLI L., WEGNER P., On Understanding Types, Data Abstraction and Polymorphism. Computing Surveys, 17(4), 1985, pp.471-522.
  • [8] CASTAGNA G., Object-Oriented Programming. A Unified Foundation. Birkhauser, 1997.
  • [9] ECKEL B.,Thinking in Java. Edycja polska. Wydanie IV, Gliwice, Helion, 2006.
  • [10] PIERCE B., Types and Programming Languages. MIT Press, 2002.
  • [11] TORGERSEN M., ERNST E., PLESNER HANSEN C, von der AHE P., BRACHA G., GAFTER N., Adding Wildcards to the Java Programming Language, Journal of Object Technology 3, 2004, 97-116.
  • [12] TORGERSEN, M., ERNST, E., PLESNER HANSEN, C: Wild FJ. W: Proceedings of the Twelfth Workshop on Foundations of Object-Oriented Languages (FOOL), ACM Press, 2005.
  • 13] VANDEVOORDE D., JOSUTTIS N.M., C++. Szablony. Helion, 2003.
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-article-BPW6-0019-0030
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.