KIT | KIT-Bibliothek | Impressum | Datenschutz

Modular and Automated Type-Soundness Verification for Language Extensions

Lorenzen, Florian; Erdweg, Sebastian ORCID iD icon 1
1 Institut für Programmstrukturen und Datenorganisation (IPD), Karlsruher Institut für Technologie (KIT)

Abstract (englisch):

Language extensions introduce high-level programming constructs that protect programmers from low-level details and repetitive tasks. For such an abstraction barrier to be sustainable, it is important that no errors are reported in terms of generated code. A typical strategy is to check the original user code prior to translation into a low-level encoding, applying the assumption that the translation does not introduce new errors. Unfortunately, such assumption is untenable in general, but in particular in the context of extensible programming languages, such as Racket or SugarJ, that allow regular programmers to define language extensions. In this paper, we present a formalism for building and automatically verifying the type-soundness of syntactic language extensions. To build a type-sound language extension with our formalism, a developer declares an extended syntax, type rules for the extended syntax, and translation rules into the (possibly further extended) base language. Our formalism then validates that the user-defined type rules are sufficient to guarantee that the code generated by the translation rules cannot contain any type errors. ... mehr


Zugehörige Institution(en) am KIT Institut für Programmstrukturen und Datenorganisation (IPD)
Publikationstyp Proceedingsbeitrag
Publikationsjahr 2013
Sprache Englisch
Identifikator ISBN: 978-145032326-0
KITopen-ID: 1000188544
Erschienen in Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP; Boston, MA, USA, 25.-27.09.2013
Veranstaltung 18th ACM SIGPLAN International Conference on Functional Programming (2013), Boston, MA, USA, 25.09.2013 – 27.09.2013
Verlag Association for Computing Machinery (ACM)
Seiten 331–342
Schlagwörter Automatic verification; Language extensibility; Macros; Metaprogramming; SugarJ; Type soundness
Nachgewiesen in Scopus
KIT – Die Universität in der Helmholtz-Gemeinschaft
KITopen Landing Page