An In-Depth Look at ALIA4J

Christoph Bockisch, A. Sewe, Haihan Yin, M. Mezini, Mehmet Aksit

    Research output: Contribution to journalArticleAcademicpeer-review

    11 Citations (Scopus)
    31 Downloads (Pure)

    Abstract

    New programming languages supporting advanced modularization mechanisms are often implemented as transformations to the imperative intermediate representation of an already established language. But while their core constructs largely overlap in semantics, re-using the corresponding transformations requires re-using their syntax as well; this is limiting. In the ALIA4J approach, we identified dispatching as fundamental to most modularization mechanisms and provide a meta-model of dispatching as a rich, extensible intermediate language. Based on this meta-model, one can modularly implement the semantics of dispatching-related constructs. From said constructs a single execution model can then be derived which facilitates interpretation, bytecode generation, and even optimized machine-code generation. We show the suitability of our approach by mapping five popular languages to this meta-model and find that most of their constructs are shared across multiple languages. We furthermore present implementations of the three different execution strategies together with a generic visual debugger available to any ALIA4J-based language implementation. Intertwined with this paper is a tutorial-style running example that illustrates our approach.
    Original languageUndefined
    Pages (from-to)7:1-7:28
    Number of pages28
    JournalJournal of object technology
    Volume11
    Issue number1
    DOIs
    Publication statusPublished - Apr 2012

    Keywords

    • CR-D.3.4
    • Pointcut-advice
    • just-in-time compilation
    • modular language implementation
    • predicate dispatching
    • EWI-21755
    • Advanced dispatching
    • Dispatching mechanisms
    • Virtual Machines
    • multiple dispatching
    • METIS-296050
    • IR-82103
    • Debugging

    Cite this

    Bockisch, C., Sewe, A., Yin, H., Mezini, M., & Aksit, M. (2012). An In-Depth Look at ALIA4J. Journal of object technology, 11(1), 7:1-7:28. https://doi.org/10.5381/jot.2012.11.1.a7
    Bockisch, Christoph ; Sewe, A. ; Yin, Haihan ; Mezini, M. ; Aksit, Mehmet. / An In-Depth Look at ALIA4J. In: Journal of object technology. 2012 ; Vol. 11, No. 1. pp. 7:1-7:28.
    @article{ebde542aea2b4fdbbd1e41d27f4f7290,
    title = "An In-Depth Look at ALIA4J",
    abstract = "New programming languages supporting advanced modularization mechanisms are often implemented as transformations to the imperative intermediate representation of an already established language. But while their core constructs largely overlap in semantics, re-using the corresponding transformations requires re-using their syntax as well; this is limiting. In the ALIA4J approach, we identified dispatching as fundamental to most modularization mechanisms and provide a meta-model of dispatching as a rich, extensible intermediate language. Based on this meta-model, one can modularly implement the semantics of dispatching-related constructs. From said constructs a single execution model can then be derived which facilitates interpretation, bytecode generation, and even optimized machine-code generation. We show the suitability of our approach by mapping five popular languages to this meta-model and find that most of their constructs are shared across multiple languages. We furthermore present implementations of the three different execution strategies together with a generic visual debugger available to any ALIA4J-based language implementation. Intertwined with this paper is a tutorial-style running example that illustrates our approach.",
    keywords = "CR-D.3.4, Pointcut-advice, just-in-time compilation, modular language implementation, predicate dispatching, EWI-21755, Advanced dispatching, Dispatching mechanisms, Virtual Machines, multiple dispatching, METIS-296050, IR-82103, Debugging",
    author = "Christoph Bockisch and A. Sewe and Haihan Yin and M. Mezini and Mehmet Aksit",
    note = "eemcs-eprint-21755",
    year = "2012",
    month = "4",
    doi = "10.5381/jot.2012.11.1.a7",
    language = "Undefined",
    volume = "11",
    pages = "7:1--7:28",
    journal = "Journal of object technology",
    issn = "1660-1769",
    publisher = "Journal of Object Technology",
    number = "1",

    }

    Bockisch, C, Sewe, A, Yin, H, Mezini, M & Aksit, M 2012, 'An In-Depth Look at ALIA4J', Journal of object technology, vol. 11, no. 1, pp. 7:1-7:28. https://doi.org/10.5381/jot.2012.11.1.a7

    An In-Depth Look at ALIA4J. / Bockisch, Christoph; Sewe, A.; Yin, Haihan; Mezini, M.; Aksit, Mehmet.

    In: Journal of object technology, Vol. 11, No. 1, 04.2012, p. 7:1-7:28.

    Research output: Contribution to journalArticleAcademicpeer-review

    TY - JOUR

    T1 - An In-Depth Look at ALIA4J

    AU - Bockisch, Christoph

    AU - Sewe, A.

    AU - Yin, Haihan

    AU - Mezini, M.

    AU - Aksit, Mehmet

    N1 - eemcs-eprint-21755

    PY - 2012/4

    Y1 - 2012/4

    N2 - New programming languages supporting advanced modularization mechanisms are often implemented as transformations to the imperative intermediate representation of an already established language. But while their core constructs largely overlap in semantics, re-using the corresponding transformations requires re-using their syntax as well; this is limiting. In the ALIA4J approach, we identified dispatching as fundamental to most modularization mechanisms and provide a meta-model of dispatching as a rich, extensible intermediate language. Based on this meta-model, one can modularly implement the semantics of dispatching-related constructs. From said constructs a single execution model can then be derived which facilitates interpretation, bytecode generation, and even optimized machine-code generation. We show the suitability of our approach by mapping five popular languages to this meta-model and find that most of their constructs are shared across multiple languages. We furthermore present implementations of the three different execution strategies together with a generic visual debugger available to any ALIA4J-based language implementation. Intertwined with this paper is a tutorial-style running example that illustrates our approach.

    AB - New programming languages supporting advanced modularization mechanisms are often implemented as transformations to the imperative intermediate representation of an already established language. But while their core constructs largely overlap in semantics, re-using the corresponding transformations requires re-using their syntax as well; this is limiting. In the ALIA4J approach, we identified dispatching as fundamental to most modularization mechanisms and provide a meta-model of dispatching as a rich, extensible intermediate language. Based on this meta-model, one can modularly implement the semantics of dispatching-related constructs. From said constructs a single execution model can then be derived which facilitates interpretation, bytecode generation, and even optimized machine-code generation. We show the suitability of our approach by mapping five popular languages to this meta-model and find that most of their constructs are shared across multiple languages. We furthermore present implementations of the three different execution strategies together with a generic visual debugger available to any ALIA4J-based language implementation. Intertwined with this paper is a tutorial-style running example that illustrates our approach.

    KW - CR-D.3.4

    KW - Pointcut-advice

    KW - just-in-time compilation

    KW - modular language implementation

    KW - predicate dispatching

    KW - EWI-21755

    KW - Advanced dispatching

    KW - Dispatching mechanisms

    KW - Virtual Machines

    KW - multiple dispatching

    KW - METIS-296050

    KW - IR-82103

    KW - Debugging

    U2 - 10.5381/jot.2012.11.1.a7

    DO - 10.5381/jot.2012.11.1.a7

    M3 - Article

    VL - 11

    SP - 7:1-7:28

    JO - Journal of object technology

    JF - Journal of object technology

    SN - 1660-1769

    IS - 1

    ER -