First-class Compositions--Defining and composing object and aspect compositions with first-class operators

Lodewijk Bergmans, W.K. Havinga, Mehmet Aksit

    Research output: Contribution to journalArticleAcademicpeer-review

    1 Citation (Scopus)

    Abstract

    A considerable amount of research, especially within the OO and AOSD communities, has focused on understanding the potential and limitations of various composition techniques. This has led to a large number of proposals for alternative composition techniques, including many variations of message dispatch, inheritance, and aspect mechanisms. This paper makes the case that there is no single perfect composition technique that suits every situation, since different techniques incur different trade-offs. The proper composition technique to use depends on the particular design problem and its requirements (e.g., with respect to adaptability, reusability, understandability, robustness, etc. of the various elements of the design). However, most programming languages limit the available composition techniques to a very few. To address this, we propose a novel composition model, called Co-op. The model provides dedicated abstractions that can be used to express a wide variety of object composition techniques ("composition operators''). Examples include various forms of inheritance, delegation, and aspects. The proposed model unifies objects (with encapsulated state and a message interface) and composition operators; composition operators are specified as first-class citizens. Multiple composition operators can be combined within the same application, and composition operators can even be used to compose new composition operators from existing ones. This opens new possibilities for developing domain-specific composition operators, taxonomies of composition operators, and for reuse and refinement of composition operators. To validate and experiment with the proposed model, we have designed and implemented a simple language, Co-op/I, that we also use in this paper to show concrete examples.
    Original languageUndefined
    Pages (from-to)216-267
    Number of pages52
    JournalTransactions on aspect-oriented software development
    VolumeIX
    DOIs
    Publication statusPublished - 2012

    Keywords

    • EWI-19911
    • IR-77419
    • METIS-279146

    Cite this

    @article{2278831f299948b9a7e5f426ecb5ffc3,
    title = "First-class Compositions--Defining and composing object and aspect compositions with first-class operators",
    abstract = "A considerable amount of research, especially within the OO and AOSD communities, has focused on understanding the potential and limitations of various composition techniques. This has led to a large number of proposals for alternative composition techniques, including many variations of message dispatch, inheritance, and aspect mechanisms. This paper makes the case that there is no single perfect composition technique that suits every situation, since different techniques incur different trade-offs. The proper composition technique to use depends on the particular design problem and its requirements (e.g., with respect to adaptability, reusability, understandability, robustness, etc. of the various elements of the design). However, most programming languages limit the available composition techniques to a very few. To address this, we propose a novel composition model, called Co-op. The model provides dedicated abstractions that can be used to express a wide variety of object composition techniques ({"}composition operators''). Examples include various forms of inheritance, delegation, and aspects. The proposed model unifies objects (with encapsulated state and a message interface) and composition operators; composition operators are specified as first-class citizens. Multiple composition operators can be combined within the same application, and composition operators can even be used to compose new composition operators from existing ones. This opens new possibilities for developing domain-specific composition operators, taxonomies of composition operators, and for reuse and refinement of composition operators. To validate and experiment with the proposed model, we have designed and implemented a simple language, Co-op/I, that we also use in this paper to show concrete examples.",
    keywords = "EWI-19911, IR-77419, METIS-279146",
    author = "Lodewijk Bergmans and W.K. Havinga and Mehmet Aksit",
    year = "2012",
    doi = "10.1007/978-3-642-35551-6_6",
    language = "Undefined",
    volume = "IX",
    pages = "216--267",
    journal = "Transactions on aspect-oriented software development",
    issn = "1864-3027",
    publisher = "Springer",

    }

    First-class Compositions--Defining and composing object and aspect compositions with first-class operators. / Bergmans, Lodewijk; Havinga, W.K.; Aksit, Mehmet.

    In: Transactions on aspect-oriented software development, Vol. IX, 2012, p. 216-267.

    Research output: Contribution to journalArticleAcademicpeer-review

    TY - JOUR

    T1 - First-class Compositions--Defining and composing object and aspect compositions with first-class operators

    AU - Bergmans, Lodewijk

    AU - Havinga, W.K.

    AU - Aksit, Mehmet

    PY - 2012

    Y1 - 2012

    N2 - A considerable amount of research, especially within the OO and AOSD communities, has focused on understanding the potential and limitations of various composition techniques. This has led to a large number of proposals for alternative composition techniques, including many variations of message dispatch, inheritance, and aspect mechanisms. This paper makes the case that there is no single perfect composition technique that suits every situation, since different techniques incur different trade-offs. The proper composition technique to use depends on the particular design problem and its requirements (e.g., with respect to adaptability, reusability, understandability, robustness, etc. of the various elements of the design). However, most programming languages limit the available composition techniques to a very few. To address this, we propose a novel composition model, called Co-op. The model provides dedicated abstractions that can be used to express a wide variety of object composition techniques ("composition operators''). Examples include various forms of inheritance, delegation, and aspects. The proposed model unifies objects (with encapsulated state and a message interface) and composition operators; composition operators are specified as first-class citizens. Multiple composition operators can be combined within the same application, and composition operators can even be used to compose new composition operators from existing ones. This opens new possibilities for developing domain-specific composition operators, taxonomies of composition operators, and for reuse and refinement of composition operators. To validate and experiment with the proposed model, we have designed and implemented a simple language, Co-op/I, that we also use in this paper to show concrete examples.

    AB - A considerable amount of research, especially within the OO and AOSD communities, has focused on understanding the potential and limitations of various composition techniques. This has led to a large number of proposals for alternative composition techniques, including many variations of message dispatch, inheritance, and aspect mechanisms. This paper makes the case that there is no single perfect composition technique that suits every situation, since different techniques incur different trade-offs. The proper composition technique to use depends on the particular design problem and its requirements (e.g., with respect to adaptability, reusability, understandability, robustness, etc. of the various elements of the design). However, most programming languages limit the available composition techniques to a very few. To address this, we propose a novel composition model, called Co-op. The model provides dedicated abstractions that can be used to express a wide variety of object composition techniques ("composition operators''). Examples include various forms of inheritance, delegation, and aspects. The proposed model unifies objects (with encapsulated state and a message interface) and composition operators; composition operators are specified as first-class citizens. Multiple composition operators can be combined within the same application, and composition operators can even be used to compose new composition operators from existing ones. This opens new possibilities for developing domain-specific composition operators, taxonomies of composition operators, and for reuse and refinement of composition operators. To validate and experiment with the proposed model, we have designed and implemented a simple language, Co-op/I, that we also use in this paper to show concrete examples.

    KW - EWI-19911

    KW - IR-77419

    KW - METIS-279146

    U2 - 10.1007/978-3-642-35551-6_6

    DO - 10.1007/978-3-642-35551-6_6

    M3 - Article

    VL - IX

    SP - 216

    EP - 267

    JO - Transactions on aspect-oriented software development

    JF - Transactions on aspect-oriented software development

    SN - 1864-3027

    ER -