Traces (A cut at the "make isn't generic" problem) [chapter]

Gregor Kiczales
1993 Lecture Notes in Computer Science  
Object-oriented t e chniques are a p owerful tool for making a system end-programmer specializable. But, in cases where the system not only accepts objects as input, but also creates objects internally, specialization has been more di cult. This has been referred to as the make isn't generic problem." We present a new objectoriented language concept, called t r aces, that we have used successfully to support specialization i n c ases that were p r eviously cumbersome. The concept of traces
more » ... a fundamental separation between two kinds of inheritance in object-oriented languages: inheritance of default implementation an aspect of code sharing; and inheritance o f s p ecialization, a sometimes static, sometimes dynamic phenomena. The Problem Object-oriented programming languages have proven to be a powerful tool for making a v ariety of systems end programmer specializable KL92 . That is, once the system has been written, compiled and distributed, a further programmer can modify or extend its behavior. This technique has played a critical role in the re ection and metalevel architectures community, where it has been used to open up" programming languages BKK + 86, Mae87, Coi87, F er89, FJ89, MCD91, KdRB91, CI93 , operating systems YTY + 89, YTM + 91, YMFT91 , and even window systems Rao90, Rao91 . A Simple Example As an example of this style of using object-oriented techniques, consider a simple graphical editor that might be part of the standard toolset in a user interface library. It accepts a v ariety of graphical objects as input, display them on the screen, allow the user to edit them, and then returns the modi ed objects. 3333 Coyote Hill Rd., Palo Alto, CA 94304; 415812-4888; Gregor@parc.xerox.com.
doi:10.1007/3-540-57342-9_64 fatcat:nn7cz4abrvdyngarz2dnnfddri