Managing Language Variability in Source-to-Source Compilers by Transforming Illusionary Syntax

Tero Hasu
Bergen Language Design Laboratory
Department of Informatics
University of Bergen, Norway

Abstract

A programming language source-to-source compiler with human-readable output likely operates on a somewhat source and target language specific program object model. A lot of implementation investment may be tied to transformation code written against the specific model. Yet, both the source and target languages typically evolve over time, and compilers may additionally support user-specified, domain-specific language customization. Language workbenches commonly support generating object model implementations based on grammar or data type definitions, and programming of traversals in generic ways. Could more be done to declaratively specify abstractions for insulating the more language-semantic transformations against changes to source and target language syntax? For example, the idea of views enables pattern matching and abstract data types to coexist—could similar abstractions be made pervasive in a generated program object model?

BibTeX

@inproceedings{hasu-14-managing,
  author =       {Tero Hasu},
  title =        {Managing Language Variability in Source-to-Source
                  Compilers by Transforming Illusionary Syntax},
  booktitle =    {Proceedings of the 2nd International Workshop on
                  Open and Original Problems in Software Language
                  Engineering (OOPSLE 2014)},
  year =         2014,
  month =        feb,
  pages =        {11--14},
  location =     {Antwerp, Belgium}
}

Scribble

(define hasu-14-managing
  (make-bib
   #:title @elem{Managing Language Variability
                 in Source-to-Source Compilers
                 by Transforming Illusionary Syntax}
   #:author (authors "Tero Hasu")
   #:date "2014"
   #:location (proceedings-location
               @elem{Intl. Wksp. Open and Original Problems
                     in Software Language Engineering}
               #:pages '(11 14))))

Publication Details

Paper
preprint (as PDF)
Proceedings URL
http://oopsle.github.io/2014/abstracts.pdf
Workshop
OOPSLE 2014 (Second International Workshop on Open and Original Problems in Software Language Engineering), co-located with CSMR-WCRE 2014 (Software Evolution Week)