Aspects of incremental programming

This thesis presents the design and implementation of Apostle, an extension to the Smalltalk programming language providing Aspect-Oriented Programming (AOP) functionality. Smalltalk is more than simply a language, it also encompasses a dynamic and incremental environment. Any extension to Smalltalk must preserve the properties expected of these environments, such as their immediate, incremental, and seamless natures. As such, the design process of Apostle entails more than proposing new language constructs and their implementation. We examine three parts of the system: • the design of the language extensions; • the implementation; • applying the language extensions to some real-world problems to evaluate their usefulness.

[1]  Alan Dotts,et al.  Development of reusable test equipment software using Smalltalk and C , 1993, OOPS Messenger.

[2]  Gregor Kiczales,et al.  RG: A Case-Study for Aspect-Oriented Programming , 1997 .

[3]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[4]  Gary T. Leavens,et al.  MultiJava: modular open classes and symmetric multiple dispatch for Java , 2000, OOPSLA '00.

[5]  Gregor Kiczales,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001, ESEC/FSE-9.

[6]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[7]  Daniel G. Bobrow,et al.  CommonLoops: Merging Lisp and Object-Oriented Programming , 1986, OOPSLA.

[8]  J. V. Gurp,et al.  Separation of Concerns : A Case Study , 2001 .

[9]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[10]  J. McAffer,et al.  Actra-a multitasking/multiprocessing smalltalk , 1988, OOPSLA/ECOOP '88.

[11]  Gregor Kiczales,et al.  Coding Issues in AspectJ , 2000 .

[12]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[13]  David A. Thomas,et al.  Smalltalk With Style , 2002 .

[14]  John R. Gilbert,et al.  Aspect-Oriented Programming of Sparse Matrix Code , 1997, ISCOPE.

[15]  David Lorge Parnas,et al.  The Modular Structure of Complex Systems , 1984, IEEE Transactions on Software Engineering.

[16]  Ralph E. Johnson,et al.  Wrappers to the Rescue , 1998, ECOOP.

[17]  Adele Goldberg,et al.  Smalltalk-80 - the interactive programming environment , 1984 .

[18]  Brian de Alwis,et al.  How to Achieve Worst-Case Performance , 2001 .

[19]  Stanley M. Sutton,et al.  Multi-Dimensional Separation of Concerns , 1999 .

[20]  Kent Beck,et al.  Chrysler goes to extremes , 1998 .

[21]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[22]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[23]  Harold Ossher,et al.  Using multidimensional separation of concerns to (re)shape evolving software , 2001, CACM.

[24]  Jane Pryor,et al.  A Reflective Architecture for the Support of Aspect-Oriented Programming in Smalltalk , 1999, ECOOP Workshops.

[25]  Kris Gybels,et al.  Aspect-Oriented Programming using a Logic Meta Programming Language to express cross-cutting through a dynamic joinpoint structure. , 2001 .

[26]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[27]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[28]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[29]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[30]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[31]  Karl J. Lieberherr,et al.  Aspect-oriented programming with adaptive methods , 2001, CACM.

[32]  Kurt Maly,et al.  Web‐based framework for distributed computing , 1997 .

[33]  Jeff McAffer Meta-level Programming with CodA , 1995, ECOOP.

[34]  Randall B. Smith,et al.  Self: The power of simplicity , 1987, OOPSLA 1987.