Corpus ID: 15067952

The Essence of AspectJ [ Functional Pearl ]

  title={The Essence of AspectJ [ Functional Pearl ]},
  author={Mark P. Jones},
In the construction of a large software system, it is inevitable that some aspects of program behavior will cut across the structure of the code. The changes that are needed to support a new feature, for example, may be spread across several different points in the original program, making them harder to maintain and harder to reuse. The designers of “aspect-oriented” programming languages aim to tackle these problems by introducing new language mechanisms to capture cross-cutting concerns… Expand

Figures from this paper


Aspect-oriented programming
This tutorial shows how to use AOP to implement crosscutting conerns in a concise modular way and includes a description of their underlying model, in terms of which a wide range of AOP languages can be understood. Expand
Monad transformers and modular interpreters
A fully modular interpreter based on monad transformers that incudes features missing from Steele's, Espinosa's, and Wadler's earlier efforts is designed and implemented in Gofer, whose constructor classes provide just the added power over Haskell's type classes to allow precise and convenient expression of the ideas. Expand
The essence of functional programming (Invited talk)
This paper explores the use monads to structure functional programs and describes the relation bet ween monads and cent inuationpassing style, and sketches how monads are used in a compiler for Haskell that is written in Haskell. Expand
Imperative functional programming
Our intuitive idea of a function is that it describes the dependence of one quantity upon another. There is no condition on what kind of quantities are involved. They could be integers, TuringExpand
Lazy functional state threads
This work presents a way of securely encapsulating stateful computations that manipulate multiple, named, mutable objects, in the context of a non-strict, purely-functional language, using parametricity. Expand
Computational lambda-calculus and monads
  • E. Moggi
  • Mathematics, Computer Science
  • [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science
  • 1989
The author gives a calculus based on a categorical semantics for computations, which provides a correct basis for proving equivalence of programs, independent from any specific computational model. Expand
The Java Language Specification Second Edition
  • The Java Language Specification Second Edition
  • 2000
Haskell 98 — A Non−strict‚ Purely Functional Language
Hugs 98 User Manual
  • Hugs 98 User Manual
  • 1999
Multi-dimensional separation of concerns using hyperspaces
  • Research Report
  • 1999