TU Darmstadt / ULB / TUbiblio

Capture-Avoiding and Hygienic Program Transformations

Erdweg, Sebastian ; van der Storm, Tijs ; Dai, Yi (2014)
Capture-Avoiding and Hygienic Program Transformations.
28th European Conference on Object-Oriented Programming. Uppsala, Sweden (28.07.-01.08.2014)
doi: 10.1007/978-3-662-44202-9_20
Konferenzveröffentlichung, Bibliographie

Kurzbeschreibung (Abstract)

Program transformations in terms of abstract syntax trees compromise referential integrity by introducing variable capture. Variable capture occurs when in the generated program a variable declaration accidentally shadows the intended target of a variable reference. Existing transformation systems either do not guarantee the avoidance of variable capture or impair the implementation of transformations.

We present an algorithm called name-fix that automatically eliminates variable capture from a generated program by systematically renaming variables. name-fix is guided by a graph representation of the binding structure of a program, and requires name-resolution algorithms for the source language and the target language of a transformation. name-fix is generic and works for arbitrary transformations in any transformation system that supports origin tracking for names. We verify the correctness of name-fix and identify an interesting class of transformations for which name-fix provides hygiene. We demonstrate the applicability of name-fix for implementing capture-avoiding substitution, inlining, lambda lifting, and compilers for two domain-specific languages.

Typ des Eintrags: Konferenzveröffentlichung
Erschienen: 2014
Autor(en): Erdweg, Sebastian ; van der Storm, Tijs ; Dai, Yi
Art des Eintrags: Bibliographie
Titel: Capture-Avoiding and Hygienic Program Transformations
Sprache: Englisch
Publikationsjahr: 6 August 2014
Verlag: Springer
Buchtitel: ECOOP 2014 - Object-Oriented Programming
Reihe: Lecture Notes in Computer Science
Band einer Reihe: 8586
Veranstaltungstitel: 28th European Conference on Object-Oriented Programming
Veranstaltungsort: Uppsala, Sweden
Veranstaltungsdatum: 28.07.-01.08.2014
DOI: 10.1007/978-3-662-44202-9_20
Kurzbeschreibung (Abstract):

Program transformations in terms of abstract syntax trees compromise referential integrity by introducing variable capture. Variable capture occurs when in the generated program a variable declaration accidentally shadows the intended target of a variable reference. Existing transformation systems either do not guarantee the avoidance of variable capture or impair the implementation of transformations.

We present an algorithm called name-fix that automatically eliminates variable capture from a generated program by systematically renaming variables. name-fix is guided by a graph representation of the binding structure of a program, and requires name-resolution algorithms for the source language and the target language of a transformation. name-fix is generic and works for arbitrary transformations in any transformation system that supports origin tracking for names. We verify the correctness of name-fix and identify an interesting class of transformations for which name-fix provides hygiene. We demonstrate the applicability of name-fix for implementing capture-avoiding substitution, inlining, lambda lifting, and compilers for two domain-specific languages.

Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik
20 Fachbereich Informatik > Softwaretechnik
Hinterlegungsdatum: 28 Feb 2024 09:31
Letzte Änderung: 28 Feb 2024 09:31
PPN:
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen