Syntactic Language Extension via an Algebra of Languages and Transformations

Jacob Andersen, Claus Brabrand

    Publikation: Artikel i tidsskrift og konference artikel i tidsskriftKonferenceartikelForskningpeer review

    Abstract

    We propose an algebra of languages and transformations as a means for extending
    languages syntactically. The algebra provides a layer of high-level abstractions
    built on top of languages (captured by context-free grammars) and transformations
    (captured by constructive catamorphisms).
    The algebra is self-contained in that any term of the algebra specifying a transformation
    can be reduced to a catamorphism, before the transformation is run. Thus,
    the algebra comes "for free" without sacri cing the strong safety and efficiency
    properties of constructive catamorphisms.
    The entire algebra as presented in the paper is implemented as the Banana Algebra
    Tool which may be used to syntactically extend languages in an incremental
    and modular fashion via algebraic composition of previously de ned languages and
    transformations. We demonstrate and evaluate the tool via several kinds of extensions.

    OriginalsprogEngelsk
    TidsskriftElectronic Notes in Theoretical Computer Science
    Vol/bind253
    Udgave nummer7
    Sider (fra-til)19-35
    ISSN1571-0661
    StatusUdgivet - 2010
    BegivenhedLanguage Descriptions, Tools, and Applications (LDTA) - York, Storbritannien
    Varighed: 27 mar. 200928 mar. 2009
    Konferencens nummer: 9

    Konference

    KonferenceLanguage Descriptions, Tools, and Applications (LDTA)
    Nummer9
    Land/OmrådeStorbritannien
    ByYork
    Periode27/03/200928/03/2009

    Emneord

    • Language Algebra
    • Syntactic Extension
    • Context-Free Grammars
    • Constructive Catamorphisms
    • Modular Transformations

    Fingeraftryk

    Dyk ned i forskningsemnerne om 'Syntactic Language Extension via an Algebra of Languages and Transformations'. Sammen danner de et unikt fingeraftryk.

    Citationsformater