This paper present an aspect-oriented extension for the Kotlin programming language. Kotlin is a new multi-paradigm programming language that is rapidly gaining popularity. However, to be competitive with the existing...
详细信息
This paper present an aspect-oriented extension for the Kotlin programming language. Kotlin is a new multi-paradigm programming language that is rapidly gaining popularity. However, to be competitive with the existing programming languages it is necessary to implement many extensions already existing for the traditional programming languages. One of such extensions is an aspect-oriented approach. In the paper, after the analysis of the aspect-oriented extensions for the diferent object-oriented languages, we have developed a program prototype, which allows using the aspect-oriented approach with Kotlin programming language. We have developed a grammar for describing aspects and have created extension of Kotlin compiler for weaving cross-cutting functionality. The developed extension has been successfully verifed on a test suite.
作者:
Polito, GuillermoDucasse, StéphaneFabresse, LucRMoD
Univ. Lille CNRS Centrale Lille Inria UMR 9189 CRIStAL - Centre de Recherche en Informatique Signal et Automatique de Lille LilleF-59000 France Inria Lille-Nord Europe
40 Avenue Halley Villeneuve d’Ascq France IMT Lille Douai
Univ. Lille Unit de Recherche Informatique Automatique LilleF- 59000 France
Loading code inside a Pharo image is a daily concern for a Pharo developer. Nevertheless, several problems may arise at loading time that can prevent the code to load or even worse let the system in an inconsistent st...
详细信息
Execution trace analysis is particularly valuable in the context of object-oriented program comprehension. However, coping with object-oriented execution traces is a very difficult task. In particular, because of coup...
详细信息
Designing and programming require several types of knowledge. Beside conceptual knowledge, procedural knowledge is of importance. Procedural knowledge, however, is often missed in courses about software design and imp...
详细信息
Symbol reference has an important role in various areas of software technology. Some modern object-oriented languages use it for implementing function and operator overloading, linkers use it for connecting objects be...
详细信息
While the lack of cohesiveness of modules in procedural languages is a good way to identify modules with potential quality problems, we doubt that it is an adequate measure for packages in object-oriented systems. Ind...
详细信息
Learning how to design and implement a concurrent program is hard. Most textbooks on Java programming only treat concurrency in terms of syntax and examples. They pay little attention to systematically designing concu...
详细信息
Microsoft NET Framework is a new generation code programming model designed for Windows. It has powerful de-sign functionality and integrates new development technology. It can be used for designing spectacular softwa...
详细信息
Students often have difficulties in learning how to program in an object-oriented style. One of the causes of this problem is that object-oriented languages require the programmer to be familiarized with a big amount ...
详细信息
Modularity in object-oriented (OO) applications has been a major concern since the early years of OO programming languages. Migrating existing OO applications to Component-Based (CB) ones can contribute to improve mod...
详细信息
ISBN:
(纸本)1891706411
Modularity in object-oriented (OO) applications has been a major concern since the early years of OO programming languages. Migrating existing OO applications to Component-Based (CB) ones can contribute to improve modularity, and therefore maintainability and reuse. In this paper, we propose a method for source code transformation (refactoring) in order to perform this migration. This method enhances decoupling by considering that some dependencies between classes should be set through abstract types (interfaces) like in CB applications. In addition, some anticipated instantiations of these classes "buried" in the source code are extracted and replaced by declarative statements (like connectors in CB applications) which are processed by a dependency injection mechanism. For doing so, a set of "Bad Smells", i.e., modularity-violating symptoms, has been defined. These are first detected in the source code. Then, some refactoring operations are applied for their elimination. An implementation of the method was successfully experimented on a set of open source Java projects. The results of this experimentation are reported in this paper.
暂无评论