Vis enkel innførsel

dc.contributor.authorKalleberg, Karl Trygveeng
dc.contributor.authorVisser, Eelcoeng
dc.description.abstractProgram transformation systems provide powerful analysis and transformation frameworks as well as concise languages for language processing, but instantiating them for every subject language is an arduous task, most often resulting in half-completed frontends. Compilers provide mature frontends with robust parsers and type checkers, but solving language processing problems in general-purpose languages without transformation libraries is tedious. Reusing these frontends with existing transformation systems is therefore attractive. However, for this reuse to be optimal, the functional logic found in the frontend should be exposed to the transformation system – simple data serialization of the abstract syntax tree is not enough, since this fails to expose important compiler functionality, such as import graphs, symbol tables and the type checker. In this paper, we introduce a novel and general technique for combining term-based transformation systems with existing language frontends. The technique is presented in the context of a scriptable analysis and transformation framework for Java built on top of the Eclipse Java compiler. The framework consists of an adapter automatically extracted from the abstract syntax tree of the compiler and an interpreter for the Stratego program transformation language. The adapter allows the Stratego interpreter to rewrite directly on the compiler AST. We illustrate the applicability of our system with scripts written in Stratego that perform framework and library-specific analyses and transformations.en_US
dc.rightsAttribution-NonCommercial-NoDerivs CC BY-NC-NDeng
dc.subjectcompiler scriptingeng
dc.subjectstrategic programmingeng
dc.subjectprogram transformationeng
dc.titleFusing a Transformation Language with an Open Compileren_US
dc.typePeer reviewed
dc.typeJournal article
dc.rights.holderCopyright 2008 Elsevier B.V.en_US
dc.source.journalElectronic Notes in Theoretical Computer Science

Tilhørende fil(er)


Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel

Attribution-NonCommercial-NoDerivs CC BY-NC-ND
Med mindre annet er angitt, så er denne innførselen lisensiert som Attribution-NonCommercial-NoDerivs CC BY-NC-ND