Results 1 -
8 of
8
Aspect-oriented programming
- ECOOP
, 1997
"... We have found many programming problems for which neither procedural nor object-oriented programming techniques are sufficient to clearly capture some of the important design decisions the program must implement. This forces the implementation of those design decisions to be scattered throughout the ..."
Abstract
-
Cited by 1363 (13 self)
- Add to MetaCart
We have found many programming problems for which neither procedural nor object-oriented programming techniques are sufficient to clearly capture some of the important design decisions the program must implement. This forces the implementation of those design decisions to be scattered throughout the code, resulting in “tangled” code that is excessively difficult to develop and maintain. We present an analysis of why certain design decisions have been so difficult to clearly capture in actual code. We call the properties these decisions address aspects, and show that the reason they have been hard to capture is that they crosscut the system’s basic functionality.
We present the basis for a new programming technique, called aspect-oriented programming, that makes it possible to clearly express programs involving such aspects, including appropriate isolation, composition and reuse
of the aspect code. The discussion is rooted in systems we have built using aspect-oriented programming.
Hybrid Group Reflective Architecture for Object-Oriented Concurrent Reflective Programming
, 1991
"... The benefits of computational reflection are the abilities to reason and alter the dynamic behavior of computation from within the language framework. This is more beneficial in concurrent/distributed computing, where the complexity of the system is much greater compared to sequential computing; ..."
Abstract
-
Cited by 64 (8 self)
- Add to MetaCart
The benefits of computational reflection are the abilities to reason and alter the dynamic behavior of computation from within the language framework. This is more beneficial in concurrent/distributed computing, where the complexity of the system is much greater compared to sequential computing; we have demonstrated various benefits in our past research of Object-Oriented Concurrent Reflective (OOCR) architectures. Unfortunately, attempts to formulate reflective features provided in practical reflective systems, such as resource management, have led to some difficulties in maintaining the linguistic lucidity necessary in computational reflection. The primary reason is that previous OOCR architectures lack the ingredients for group-wide object coordination. We present a new OOCR language with a hybrid group reflective architecture, ABCL/R2, whose key features are the notion of heterogeneous object groups and coordinated management of group shared resources. We describe and gi...
The evolution of the recovery block concept
- IN SOFTWARE FAULT TOLERANCE
, 1994
"... This chapter reviews the development of the recovery block approach to software fault tolerance and subsequent work based on this approach. It starts with an account of the development and implementations of the basic recovery block scheme in the early 1970s at Newcastle, and then goes on to describ ..."
Abstract
-
Cited by 43 (2 self)
- Add to MetaCart
This chapter reviews the development of the recovery block approach to software fault tolerance and subsequent work based on this approach. It starts with an account of the development and implementations of the basic recovery block scheme in the early 1970s at Newcastle, and then goes on to describe work at Newcastle and elsewhere on extensions to the basic scheme, recovery in concurrent systems, and linguistic support for recovery blocks based on the use of object-oriented programming concepts.
Language Features for Re-use and Extensibility in Concurrent Object-Oriented Programming Languages
, 1993
"... ..."
A Reflective Model of Inheritance
, 1992
"... ions are introduced using notation; conditionals are written using !; application is expressed by juxtaposition of the function being applied with its arguments. Recursion is expressed using letrec . 3.1 Records Records are non-strict finite associations of labels to values. The constituent express ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
ions are introduced using notation; conditionals are written using !; application is expressed by juxtaposition of the function being applied with its arguments. Recursion is expressed using letrec . 3.1 Records Records are non-strict finite associations of labels to values. The constituent expressions in a record are evaluated relative to the record's evaluation environment. The value of a record field can be retrieved using the "." operator: if r is a record, then evaluating r:x returns the binding value of x as defined in r. We provide one other operation over records. Let r 1 and r 2 be two records and let Dom(r) be the set of names defined within record r. The join or composition of r 1 and r 2 (written (ffl r 1 r 2 )) is now defined as follows: (ffl r 1 r 2 ):x = ae r 2 :x if x 2 Dom(r2) r 1 :x otherwise 3 Besides these basic syntactic forms, we introduce various syntactic extensions (or abbreviations) throughout the paper; these extensions are best thought of as macros th...
Study on a Reflective Architecture to Provide Efficient . . .
, 1994
"... Recent progress in implementations of object-oriented concurrent programming languages on highly-parallel processors makes it feasible to construct large-scale parallel applications having complicated structures. Such applications can not exhibit good performance without dynamic resource management ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Recent progress in implementations of object-oriented concurrent programming languages on highly-parallel processors makes it feasible to construct large-scale parallel applications having complicated structures. Such applications can not exhibit good performance without dynamic resource management (e.g., load-balancing and object scheduling) tailored to the characteristics of the applications and/or machine architectures. Since dynamic resource management systems are usually intertwined with the language implementation, modification/extension of the management systems requires complicated programming in the low-level language. Reflective systems can provide abstractions to modify/extend the implementation-level facilities within the application-level language. This study proposes a reflective architecture of an object-oriented concurrent language for highly-parallel processors to provide resource management systems for parallel applications. To make our architecture practical, much at...
Chapter 1: The evolution of the recovery block concept
- in Software Fault Tolerance
, 1994
"... This chapter reviews the development of the recovery block approach to software fault tolerance and subsequent work based on this approach. It starts with an account of the development and implementations of the basic recovery block scheme in the early 1970s at Newcastle, and then goes on to describ ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
This chapter reviews the development of the recovery block approach to software fault tolerance and subsequent work based on this approach. It starts with an account of the development and implementations of the basic recovery block scheme in the early 1970s at Newcastle, and then goes on to describe work at Newcastle and elsewhere on extensions to the basic scheme, recovery in concurrent systems, and linguistic support for recovery blocks based on the use of object-oriented programming concepts. 1 1.1
A Survey of Concurrent Object-Oriented Programming Languages
, 1996
"... Issues in the design and selection of concurrent object-oriented languages are discussed and some general principles outlined. The bulk of this paper is an extensive (although far from complete) enumeration of concurrent object-oriented languages, past and present. Salient features are discussed and ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Issues in the design and selection of concurrent object-oriented languages are discussed and some general principles outlined. The bulk of this paper is an extensive (although far from complete) enumeration of concurrent object-oriented languages, past and present. Salient features are discussed and unusual or novel aspects of each language pointed out. An attempt is made to draw some general conclusions from work in this area in terms of the features provided by the languages and the hardware they are targetted on. 1 Motivation We are currently engaged in a project to exploit functional programming as a means of developing and maintaining parallel programmes. To date we have developed a number of hand-built applications in the area of computer vision [118, 88, 99] and have developed a prototype automatic parallelising compiler based on Standard ML [24]. We now wish to investigate the role of a higher-level abstraction mechanism in our methodology and would like to base our research i...

