Implementing aspect-oriented programming constructs as modular language extensions

被引:3
作者
Van Wyk, Eric [1 ]
机构
[1] Univ Minnesota, Dept Comp Sci & Engn, Minneapolis, MN 55455 USA
关键词
extensible languages; extensible compilers; attribute grammars; forwarding; aspect-oriented programming;
D O I
10.1016/j.scico.2005.06.006
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Extensible programming languages and their compilers are experimental systems that use highly modular specifications of languages and language extensions in order to allow a variety of language features to be easily imported, by the programmer, into his or her programming environment. Our framework for extensible languages is based on higher-order attribute grammars extended with a mechanism called "forwarding" that mimics a simple rewriting process. Forwarding is designed such that no additional attribute definitions need to be written when combining a "host" language with language extensions (specified as attribute grammars), thus allowing for the modular composition of language features. This means that programmers can remain unaware of the underlying attribute grammars when building customized languages by importing language extensions. This paper shows how aspects and the aspect weaving process from aspect-oriented programming can be specified as a modular language extension and imported into an extensible host language. This paper also illustrates how an extensible compiler framework exposes its underlying semantic analyses and how this can provide a convenient arena in which researchers can explore new aspect-oriented language features. (c) 2007 Elsevier B.V. All rights reserved.
引用
收藏
页码:38 / 61
页数:24
相关论文
共 65 条
  • [1] Adams S. R., 1993, THESIS U SOUTHAMPTON
  • [2] AKSIT M, 2003, P 2 INT C ASP OR SOF
  • [3] Alexandrescu A., 2001, Modern C++ Design: Generic Programming and Design Patterns Applied
  • [4] ARCH D, 2001, P 2001 JOINT ACM ISC, P1
  • [5] ASSMAN U, 1999, LECT NOTES COMPUTER, V1779, P24
  • [6] AUGUSTEIJN A, 1993, THESIS EINDHOVEN TEC
  • [7] AVIDCAUSEVIC E, 2001, ASPECTCOOL EXPT DESI, V36, P84
  • [8] AVIDCAUSEVIC E, 2002, P 2002 ACM S APPL CO, P943
  • [9] BACHRACH J, 2001, OOPSLA 2001 C P, P31, DOI DOI 10.1145/504311.504285
  • [10] BAKER J, 2002, P ACM SIGPLAN 2002 C, P270