Servicios Personalizados
Revista
Articulo
Indicadores
- Citado por SciELO
- Accesos
Links relacionados
- Similares en SciELO
Compartir
Computación y Sistemas
versión On-line ISSN 2007-9737versión impresa ISSN 1405-5546
Comp. y Sist. vol.7 no.2 Ciudad de México oct./dic. 2003
Artículo
Inheritance, Generics and Binary Methods in Java
Herencia, Genéricos y Métodos Binarios en Java
María Lucía BarrónEstrada 1 and Ryan Stansifer 2
1 Departamento de Sistemas y Computación Instituto Tecnológico de Culiacán Culiacán, Sin. C.P. 80220 México. Email: mbarron@fit.edu
2 Computer Science Department Florida Institute of Technology University Blvd.. Melbourne, FL 32901. Email: ryan@cs.fit.ed
Abstract
Java has adopted a mechanism to support parameterized types that will be available in the next major release. A draft specification to add generics to the JavaTM Programming Language was published two years ago [1] and a new version of it in June 23, 2003 [2]. An extension of the type system based on Fbounded quantification is proposed. A binary method is a method that has one or more parameters of the same type as the object that receives the message. FBounded polymorphism and binary methods can't be combined smoothly in objectoriented languages with nominal subtyping and single dispatch [3].
In this paper, we address some problems that can arise when binary methods are needed in parameterized classes and interfaces in the implementation of a Java program.
Keywords: Binary methods, Inheritance, Java, Parameterized types.
Resumen
El lenguaje de programación Java ha adoptado un mecanismo para definir tipos parametrizados, el cual estará disponible para los usuarios en la próxima versión de su compilador. La primera especificación formal para incluir genéricos en Java fue publicada hace dos años y una nueva versión el pasado mes de Junio del 2003. En esta especificación, se propone extender el sistema de tipos basandose en el sistema de cuantificación restringida F (FBounded quantification) con el fin de soportar directamente polimorfismo paramétrico en Java. Un método binario en aquel que contiene uno o más parámetros del mismo tipo del objeto que recibe el mensaje. El polimorfismo basado en el sistema de restricción F y los métodos binarios no pueden ser combinados en forma sencilla en aquellos lenguajes de programación orientados a objectos que contienen un sistema de tipos nominal y basan la selección del metodo a ejecutar solo en el tipo del objeto que recibe el mensaje.
En este articulo, se presentan algunos problemas que aparecen en la implementación de programas en Java cuando es necesario definir clases e interfaces parametrizadas.
Palabras clave: métodos binarios, herencia, Java, tipos parametrizados, genéricos.
DESCARGAR ARTÍCULO EN FORMATO PDF
References
1. Gilad Bracha, Norman Cohen, Christian Kemper, Steve Max, Martin Odersky, SvenEric Paintz, David Stoutamire, Kresten Thorup, and Philip Wadler. Adding generics to the JavaTM Programming Language: Participant Draft Specification. April 27, 2001. Online. http://java.sun.com [ Links ]
2. Gilad Bracha, Norman Cohen, Christian Kemper, Martin Odersky, David Stoutamire, Kresten Thorup, and Philip Wadler. Adding generics to the JavaTM Programming Language: Public Draft Specification, Version 2.0. June 23, 2003. Online. http://java.sun.com [ Links ]
3. Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, the Hopkins Objects Group, Gary T. Leavens, and Benjamin Pierce. On binary methods. Theory and Practice of Object Systems, 1(3):221242, 1996. [ Links ]
4. Gilad Bracha, David Stoutamire, Martin Odersky, and Philip Wadler. Making the future safe for the past: Adding genericity to the Java programming language. In Proceedings of OOPSLA '98, October 1998. [ Links ]
5. Luca Cardelli and Peter Wegner. On understanding Types, Data abstraction, and Polymorphism. Computing Surveys, Vol. 17 n. 4, pp 471522, December 1985. [ Links ]
6. Peter S. Canning, William Cook, Walter L. Hill, John Mitchell, and Walter Olthoof. FBounded Polymorphism for ObjectOriented Programming. In Proceedings of the Fourth International Conference on Functional Programming Languages and Computer Architecture, pages 273280. ACM, 1989. [ Links ]
7. James Gosling, Bill Joy, Guy L. Steele, and Gilad Bracha. The Java Language Specification. Java series. AddisonWesley, Reading, Massachusetts, second edition, 2000. [ Links ]
8. Didier Remy and Jerome Vouillon. Objective ML: An effective objectoriented extension to ML. Theory and Practice of Object Systems. 1998. [ Links ]
9. John Boyland and Giuseppe Castagna. Parasitic Methods: An Implementation of MultiMethods for Java. Proceedings of ACM OOPSLA 97 Conference. Atlanta, GA, USA 1997. [ Links ]
10. Luca Cardelli, A Semantics of Multiple Inheritance. Inf. Computation 76, 138164. [ Links ]
11. Giuseppe Castagna, G Ghelli, and G Longo. A calculus for overloaded functions with subtyping. Information and Computation 117,1,115135 1995. A preliminary version has been presented at the 1992 ACM Conference on LISP and Functional Programming. [ Links ]