Generic programming is a mechanism for re-using code by abstracting specific types used in classes and programs. In this paper, we present a mechanism for adding generic programming in dynamically typed languages, showing how programmers can benefit from generic programming. Furthermore, we enhance the expressiveness of generic programming with reverse generics, a mechanism for automatically deriving new generic code starting from existing non-generic one. We implemented generics and reverse generics in Pharo Smalltalk, and we successfully used them to solve a problem of reusing unit test cases. This helped us to identify a number of bugs and anomalies in the stream class hierarchy.
Generics and Reverse Generics for Pharo / Bergel, A.; Bettini, Lorenzo. - STAMPA. - (2012), pp. 363-372. (Intervento presentato al convegno ICSOFT tenutosi a Roma nel 24-27 July, 2012).
Generics and Reverse Generics for Pharo
BETTINI, LORENZO
2012
Abstract
Generic programming is a mechanism for re-using code by abstracting specific types used in classes and programs. In this paper, we present a mechanism for adding generic programming in dynamically typed languages, showing how programmers can benefit from generic programming. Furthermore, we enhance the expressiveness of generic programming with reverse generics, a mechanism for automatically deriving new generic code starting from existing non-generic one. We implemented generics and reverse generics in Pharo Smalltalk, and we successfully used them to solve a problem of reusing unit test cases. This helped us to identify a number of bugs and anomalies in the stream class hierarchy.I documenti in FLORE sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.