4 research outputs found

    Incrementally developing parallel applications with AspectJ

    Get PDF
    This paper presents a methodology to develop more modular parallel applications, based on aspect oriented programming. Traditional object oriented mechanisms implement application core functionality and parallelisation concerns are plugged by aspect oriented mechanisms. Parallelisation concerns are separated into four categories: functional or/and data partition, concurrency, distribution and optimisation. Modularising these categories into separate modules using aspect oriented programming enables (un)pluggability of parallelisation concerns. This approach leads to more incremental application development, easier debugging and increased reuse of core functionality and parallel code, when compared with traditional object oriented approaches. A detailed analysis of a simple parallel application - a prime number sieve - illustrates the methodology and shows how to accomplish these gains.Fundo Europeu de Desenvolvimento Regional (FEDER) - PPC-VM project POSI/CHS/47158/2002.FundaĆ§Ć£o para a CiĆŖncia e a Tecnologia (FCT) - PPC-VM project POSI/CHS/47158/2002

    Reusable aspect-oriented implementations of concurrency patterns and mechanisms

    Get PDF
    In this paper, we present a collection of well-known high-level concurrency patterns and mechanisms, coded in AspectJ. We discuss benefits of these implementations relative to plain Java implementations of the same concerns. We detect benefits from using AspectJ in all the cases presented, in the form of higher modularity, reuse, understandability and unpluggability. For most of the implementations, two alternatives can be used: one based on traditional pointcut interfaces and one based on annotations.Fundo Europeu de Desenvolvimento Regional (FEDER).FundaĆ§Ć£o para a CiĆŖncia e a Tecnologia (FCT) - PPC-VM Project POSI/CHS/47158/2002; Project SOFTAS (POSI/EIA/60189/2004)

    Design and Partial Evaluation of Meta-objects for a Concurrent Reflective Language

    No full text
    . Customizable meta-objects are a powerful abstraction for extending language features and implementation mechanisms, but interpretive execution suffers from severe performance penalty. Some of this penalty can be reduced by applying partial evaluation to meta- interpreters, but partial evaluation of meta-objects in existing concurrent object-oriented languages is ineffective. This paper proposes a new meta-object design for our reflective language ABCL/R3. It yields metaobjects that can be optimized effectively using partial evaluation. The crux of the design is the separation of state-related operations from other operations, and this separation is accomplished by using reader/writer methods in our concurrent object-oriented language called Schematic. Our benchmark trials show that non-trivial programs with partially evaluated meta-objects run more than six times faster than ones that are interpreted by meta-objects. In addition, a partially evaluated program that uses a customized ..
    corecore