First, and most importantly, I would like to thank Agapi. She was there during all the hard times, always providing consolation and encouragement. Now that I have to do the same for her, I wish I can be as loving and supportive as she was. I am also deeply indebted to my advisor, Don Batory. Students usually have something nice to say about their advisors but often only after graduation. This is certainly not the case with me and Don. For years I have been extremely grateful for his constant encouragement and support in so many ways. I cannot say enough about the pleasure of working with Don and the freedom I enjoyed to pur-sue my research interests both within and outside this dissertation work. Don taught me a lot, and I can now face the future much more confidently because of him. I wish I can be as good an advisor and friend to my future students as he was to me. Paul Wilson was always extremely supportive. He made me feel much bet-ter about my work, offered valuable advice, and taught me a few things about myself. Our research work together was an immensely pleasurable experience and
|
1463
|
The Definition of Standard ML
– Milner, Tofte, et al.
- 1990
|
|
697
|
The Art of Metaobject Protocol
– Kiczales, Rivieres, et al.
- 1991
|
|
465
|
Designing Reusable Classes
– Johnson, Foote
- 1988
|
|
299
|
Pizza into Java: Translating theory into practice
– Odersky, Wadler
|
|
195
|
Adaptive Object-Oriented Software: the Demeter Method with Propagati on Patterns
– Lieberherr
- 1996
|
|
190
|
The Standard Template Library
– Stepanov, Lee
- 1994
|
|
159
|
Parameterized Types for Java
– Myers, Bank, et al.
- 1997
|
|
157
|
A dynamic network architecture
– O’Malley, Peterson
- 1992
|
|
147
|
Mass-produced software components
– McIlroy
- 1968
|
|
133
|
Implementing layered designs with mixin-layers
– Smaragdakis, Batory
- 1998
|
|
130
|
D.: Using Role Components in Implement Collaborationbased Designs
– VanHilst, Notkin
- 1996
|
|
118
|
Adaptive plug-and-play components for evolutionary software development
– Mezini, Lieberherr
- 1998
|
|
116
|
Hygienic macro expansion
– Kohlbecker, Friedman, et al.
- 1986
|
|
79
|
Programmable syntax macros
– Weise, Crew
- 1993
|
|
72
|
A Theory of Type Polymorphism
– Milner
- 1978
|
|
70
|
Virtual Classes: A powerful mechanism for object-oriented program- ming
– Madsen, Moller-Pedersen
- 1989
|
|
61
|
Feature-Oriented Programming: A Fresh Look at Objects
– Prehofer
- 1997
|
|
58
|
Evolution of Object Behavior Using Context Relations
– Seiter, Palsberg, et al.
- 1998
|
|
52
|
Using C++ templates to implement role-based designs
– VanHilst, Notkin
- 1996
|
|
49
|
Status Report: Software Reusability
– Prieto-Diaz
- 1993
|
|
47
|
The C++ Programming Language, 3rd ed
– STROUSTRUP
- 2000
|
|
41
|
OORASS: Seamless Support for the Creation and Maintenance of Object-Oriented Systems
– Reenskaug
- 1992
|
|
41
|
LILEANNA: A parameterized programming language
– Tracz
- 1993
|
|
39
|
Getting Started: Using use cases to capture requirements
– Rumbaugh
- 1994
|
|
32
|
Traversals of Object Structures: Specification and Efficient Implementation
– Lieberherr, Patt-Shamir, et al.
|
|
27
|
P2: A Lightweight DBMS Generator
– Batory, Thomas
- 1995
|
|
21
|
The death of computer languages
– Simonyi
- 1995
|
|
19
|
Empirically analyzing software reuse in a production environment
– Selby
- 1988
|
|
19
|
A Programming Language for Writing Domain-Specific Software System Generators
– Singhal
- 1996
|
|
15
|
Mixin-Based Programming in C
– Smaragdakis, Batory
- 2001
|
|
14
|
Implementing Reusable Object-Oriented Components
– Smaragdakis, Batory
- 1998
|
|
13
|
A System for Reusing Partially Interpreted Schemas
– KATZ, RICHTER, et al.
- 1987
|
|
11
|
Synthesis Operational Scenarios
– Weiss
- 1990
|
|
10
|
Inner class specification
– JavaSoft
- 1997
|
|
9
|
Software Engineering: A Report on a
– Naur, Randall, et al.
- 1969
|
|
9
|
DiSTiL: a Transformation Library for
– Smaragdakis, Batory
- 1997
|
|
8
|
Software Reuse by Specialization of Generic Procedures through Views
– Novak
- 1997
|
|
7
|
An assessment of reuse technology after ten years
– Neighbors
- 1994
|
|
7
|
Software Reuse through View Type Clusters
– Novak
- 1992
|
|
7
|
Genericity in Java with Virtual Types. ECOOP
– Thorup
- 1997
|
|
5
|
Role-Oriented Programming for Software Evolution
– VanHilst
- 1997
|
|
5
|
Automated Compiler Generation for Extensible Data Languages
– Villarreal
- 1994
|
|
4
|
Implementing Mixins in Smalltalk”, The Smalltalk Report
– Montlick
- 1996
|
|
4
|
Object-Oriented Programming with Flavors”, OOPSLA
– Moon
- 1986
|
|
4
|
Do Parametric Types Beat Virtual Types?”, unpublished manuscript, posted in October 1998 in the Java Genericity mailing list(java-genericity@cs.rice.edu
– Wadler, Odersky, et al.
- 1998
|
|
3
|
Java Core Reflection Specification
– Javasoft
- 1997
|
|
3
|
Dynamic Object Evolution without Name
– Mezini
|
|
3
|
GLISP: A Lisp-based Language with Data Abstraction
– Novak
- 1983
|
|
3
|
A Software Engineering Perspective on Algorithmics”, available at http://www.informatik.uni-konstanz.de/Preprints
– Weihe
|
|
2
|
Software Reuse by Compilation through View Type Clusters," submitted for publication
– Novak
- 1993
|