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
相关论文
共 50 条
  • [1] Aspect-oriented programming and modular reasoning
    Kiczales, G
    Mezini, M
    ICSE 05: 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2005, : 49 - 58
  • [2] A review of a modular approach of aspect-oriented programming
    Revisión de un enfoque modular de programación orientada a aspectos
    Vidal, Cristian L., 1600, Centro de Informacion Tecnologica (25):
  • [3] A design rule language for aspect-oriented programming
    Neto, Alberto Costa
    Bonifacio, Rodrigo
    Ribeiro, Marcio
    Pontual, Carlos Eduardo
    Borba, Paulo
    Castor, Fernando
    JOURNAL OF SYSTEMS AND SOFTWARE, 2013, 86 (09) : 2333 - 2356
  • [4] Language-independent aspect-oriented programming
    Lafferty, D
    Cahill, V
    ACM SIGPLAN NOTICES, 2003, 38 (11) : 1 - 12
  • [5] Aspect-oriented programming
    Lopes, CV
    Kiczales, G
    TECHNOLOGY OF OBJECT-ORIENTED LANGUAGES AND SYSTEMS - TOOLS 34, PROCEEDINGS, 2000, : 461 - 461
  • [6] Aspect-oriented programming
    Bergmans, L
    Lopes, CV
    OBJECT-ORIENTED TECHNOLOGY, 1999, 1743 : 288 - 313
  • [7] Aspect-oriented programming
    Kiczales, G
    ICSE 05: 27th International Conference on Software Engineering, Proceedings, 2005, : 730 - 730
  • [8] Aspect-oriented programming
    Lopes, CV
    Kiczales, G
    TECHNOLOGY OF OBJECT-ORIENTED LANGUAGES - TOOLS 33, PROCEEDINGS, 2000, : 468 - 468
  • [9] Aspect-oriented programming
    Murphy, C
    Schwanninger, C
    IEEE SOFTWARE, 2006, 23 (01) : 20 - 23
  • [10] Aspect-oriented programming
    Kiczales, G
    Lamping, J
    Mendhekar, A
    Maeda, C
    Lopes, C
    Loingtier, JM
    Irwin, J
    ECOOP'97: OBJECT-ORIENTED PROGRAMMING, 1997, 1241 : 220 - 242