@INPROCEEDINGS{DBLP:conf/icsoft/2009-1,
title = {{Reverse Generics - Parametrization after the Fact}},
author = {Bergel, Alexandre and Bettini, Lorenzo},
booktitle = {ICSOFT (1)},
editor = {Boris Shishkov and Jos\'e Cordeiro and Alpesh Ranchordas},
pages = {107-123},
abstract = {By abstracting over types, generic programming enables one to write code that is
independent from specific data type implementation. This style is supported by
most mainstream languages, including C++ with templates and Java with generics.
If some code is not designed in a generic way from the start, a major effort is
required to convert this code to use generic types. This conversion is manually
realized which is known to be tedious and error-prone.
We propose Reverse Generics, a general linguistic mechanism to define a
generic class from a non-generic class. For a given set of types, a generic is
formed by unbinding static dependencies contained in these types. This
generalization and generic type instantiation may be done incrementally. This
paper studies the possible application of this linguistic mechanism to C++ and
Java and, in particular, it reviews limitations of Java generics against our
proposal.},
volume = {50},
year = {2011},
url = {http://rap.dsi.unifi.it/phpbibliography/files/reverse_generics_ICSOFT.pdf},
isbn = {978-3-642-20116-5},
publisher = {Springer},
series = {Communications in Computer and Information Science},
}