“…One possible approach are extensible compilers, such as Polyglot [48] and JastAdd [29,17]. Another approach are component-based approaches to DSL development, such as Monticore [42], LISA [47], keyword-based programming [10], and Linglets [11]. Several extensible compilers and run-times have also been proposed for implementing aspect-oriented languages on top of general-purpose languages (GPLs) [45,59,4,27,6,8,28].…”