SciELO - Scientific Electronic Library Online

 
vol.7 número2Un Algoritmo Genético de Identificación para la Familia del Sistema de DuffingReconocimiento de Rostros usando Datos No Etiquetados índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

Links relacionados

  • No hay artículos similaresSimilares 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ón–Estrada 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. E–mail: mbarron@fit.edu

2 Computer Science Department Florida Institute of Technology University Blvd.. Melbourne, FL 32901. E–mail: 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 F–bounded 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. F–Bounded polymorphism and binary methods can't be combined smoothly in object–oriented 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 (F–Bounded 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, Sven–Eric 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):221–242, 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 471–522, December 1985.        [ Links ]

6. Peter S. Canning, William Cook, Walter L. Hill, John Mitchell, and Walter Olthoof. F–Bounded Polymorphism for Object–Oriented Programming. In Proceedings of the Fourth International Conference on Functional Programming Languages and Computer Architecture, pages 273–280. ACM, 1989.         [ Links ]

7. James Gosling, Bill Joy, Guy L. Steele, and Gilad Bracha. The Java Language Specification. Java series. Addison–Wesley, Reading, Massachusetts, second edition, 2000.         [ Links ]

8. Didier Remy and Jerome Vouillon. Objective ML: An effective object–oriented extension to ML. Theory and Practice of Object Systems. 1998.         [ Links ]

9. John Boyland and Giuseppe Castagna. Parasitic Methods: An Implementation of Multi–Methods for Java. Proceedings of ACM OOPSLA 97 Conference. Atlanta, GA, USA 1997.        [ Links ]

10. Luca Cardelli, A Semantics of Multiple Inheritance. Inf. Computation 76, 138–164.         [ Links ]

11. Giuseppe Castagna, G Ghelli, and G Longo. A calculus for overloaded functions with subtyping. Information and Computation 117,1,115–135 1995. A preliminary version has been presented at the 1992 ACM Conference on LISP and Functional Programming.        [ Links ]

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons