|
ABSTRACT
Languages that support incremental programming, that is, the construction of new program components by specifying how they differ from existing components, allow for clean separation of concerns. Object-oriented languages support incremental programming with inheritance and dynamic dispatch features: whenever a message is sent, a decision occurs, but the branches of the decision can be specified in separate components. Aspect-oriented programming and predicate dispatching both introduce language mechanisms that improve on this support by allowing an extensible decision to depend on information about the message send other than just the dynamic type of the receiver or arguments. A small prototype language is presented that unifies the best features of these mechanisms, providing uniform support for incremental programming whether concerns are crosscutting or not. The language is demonstrated with a running example, a small data structure library that is incrementally extended with optimizations and new operations.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
M. Aksit and B. Tekinerdogan. Solving the modeling problems of object-oriented languages by composing multiple aspects using composition filters. Technical report, TRESE project, University of Twente, Centre for Telematics and Information Technology, P.O. Box 217, 7500 AE, Enschede, The Netherlands, 1998. AOP'98 workshop position paper.
|
| |
2
|
|
 |
3
|
|
| |
4
|
J. Brichau, W. de Meuter, and K. de Volder. Jumping aspects. Workshop on Aspects and Dimensions of Concerns at ECOOP (position paper), Cannes, France, June 2000.
|
| |
5
|
|
 |
6
|
Craig Chambers , Weimin Chen, Efficient multiple and predicated dispatching, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.238-255, November 01-05, 1999, Denver, Colorado, United States
|
| |
7
|
J. Clements, P. Graunke, S. Krishnamurthi, and M. Felleisen. Little languages and their programming environments. Monterey Workshop.
|
 |
8
|
Curtis Clifton , Gary T. Leavens , Craig Chambers , Todd Millstein, MultiJava: modular open classes and symmetric multiple dispatch for Java, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.130-145, October 2000, Minneapolis, Minnesota, United States
|
 |
9
|
W. Cook , J. Palsberg, A denotational semantics of inheritance and its correctness, Conference proceedings on Object-oriented programming systems, languages and applications, p.433-443, October 02-06, 1989, New Orleans, Louisiana, United States
|
| |
10
|
P. Costanza. Vanishing aspects. Position paper, OOPSLA 2000 workshop on Advanced Separation of Concerns, October 2000.
|
| |
11
|
|
| |
12
|
M. Flatt. PLT MzScheme: Language manual. Technical Report TR97-280, Rice University, 1997.
|
 |
13
|
|
| |
14
|
|
| |
15
|
|
| |
16
|
W. Harrison and H. Ossher. Subdivided procedures: A language extension supporting extensible programming. In Proceedings: 1990 International Conference on Computer Languages, pages 190-197. IEEE Computer Society Press, 1990.
|
| |
17
|
J. Huang. Experience using AspectJ to implement cord. Position paper, OOPSLA 2000 workshop on Advanced Separation of Concerns, October 2000.
|
| |
18
|
G. Hulten, K. Lieberherr, J. Marshall, D. Orleans, and B. Samuel. DemeterJ User Manual. http://www.ccs.neu.edu/research/demeter/.
|
| |
19
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
20
|
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Akşit and S. Matsuoka, editors, ECOOP '97 --- Object-Oriented Programming 11th European Conference, Jyväskylä, Finland, volume 1241, pages 220-242. Springer-Verlag, New York, NY, 1997.
|
| |
21
|
P. Koopmans. On the definition and implementation of the Sina/st language. MSc. thesis, Dept. of Computer Science, University of Twente, Enschede, the Netherlands, July 1995.
|
| |
22
|
K. Lieberherr, D. H. Lorenz, and J. Ovlinger. Aspectual collaborations for collaboration-oriented concerns. Technical Report NU-CCS-01-08, College of Computer Science, Northeastern University, Boston, MA 02115, Nov. 2001.
|
| |
23
|
|
| |
24
|
K. J. Lieberherr, B. Patt-Shamir, and D. Orleans. Traversals of Object Structures: Specification and Efficient Implementation. Technical Report NU-CCS-02-02, College of Computer Science, Northeastern University, Boston, MA, February 2002.
|
| |
25
|
M. Mezini. Variation-Oriented Programming Beyond Classes and Inheritance. PhD thesis, University of Siegen, 1997.
|
| |
26
|
|
| |
27
|
|
| |
28
|
|
| |
29
|
|
| |
30
|
P. Tarr and H. Ossher. Hyper/J User and Installation Manual. IBM T. J. Watson Research Center, Yorktown Heights, NY, USA, 2000.
|
| |
31
|
Peri Tarr , Harold Ossher , William Harrison , Stanley M. Sutton, Jr., N degrees of separation: multi-dimensional separation of concerns, Proceedings of the 21st international conference on Software engineering, p.107-119, May 16-22, 1999, Los Angeles, California, United States
|
| |
32
|
The AspectJ Team. The AspectJ Programming Guide. http://aspectj.org/doc/dist/progguide/.
|
| |
33
|
J. Wichman. ComposeJ: The development of a preprocessor to facilitate composition filters in the Java language. MSc. thesis, Dept. of Computer Science, University of Twente, Enschede, the Netherlands, December 1999.
|
CITED BY 8
|
|
|
|
|
Shay Artzi , Michael D. Ernst, Using predicate fields in a highly flexible industrial control system, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
Peer to Peer - Readers of this Article have also read:
-
Open signaling for ATM, internet and mobile networks (OPENSIG'98)
ACM SIGCOMM Computer Communication Review
29, 1
Andrew T. Campbell
, Irene Katzela
, Kazuho Miki
, John Vicente
-
Active bridging
ACM SIGCOMM Computer Communication Review
27, 4
D. Scott Alexander
, Marianne Shaw
, Scott M. Nettles
, Jonathan M. Smith
-
Active electronic mail
Proceedings of the 2002 ACM symposium on Applied computing
S. Karnouskos
, A. Vasilakos
-
Object-oriented database management system for process control systems—development and evaluation
Proceedings of the 1999 ACM symposium on Applied computing
Ryuji Wakizono
, Toshikazu Kawamura
, Takehiko Tsuchiya
, Takahiro Hatanaka
, Tatsuji Tanaka
-
Data structures for quadtree approximation and compression
Communications of the ACM
28, 9
Hanan Samet
|