Print Email Facebook Twitter Modular specification and dynamic enforcement of syntactic language constraints when generating code Title Modular specification and dynamic enforcement of syntactic language constraints when generating code Author Erdweg, S.T. (Technische Universität Darmstadt) Vergu, V.A. (TU Delft Programming Languages) Mezini, Mira (Technische Universität Darmstadt) Visser, Eelco (TU Delft Programming Languages) Date 2014 Abstract A key problem in metaprogramming and specifically in generative programming is to guarantee that generated code is well-formed with respect to the context-free and context-sensitive constraints of the target language. We propose typesmart constructors as a dynamic approach to enforcing the well-formedness of generated code. A typesmart constructor is a function that is used in place of a regular constructor to create values, but it may reject the creation of values if the given data violates some language-specific constraint. While typesmart constructors can be implemented individually, we demonstrate how to derive them automatically from a grammar, so that the grammar remains the sole specification of a language's syntax and is not duplicated. We have integrated support for typesmart constructors into the run-time system of Stratego to enforce usage of typesmart constructors implicitly whenever a regular constructor is called. We evaluate the applicability, performance, and usefulness of typesmart constructors for syntactic constraints in a compiler for MiniJava developed with Spoofax and in various language extensions of Java and Haskell implemented with SugarJ and SugarHaskell. To reference this document use: http://resolver.tudelft.nl/uuid:b01042d7-c682-42a1-8456-68becf7c460c DOI https://doi.org/10.1145/2577080.2577089 Publisher Association for Computing Machinery (ACM), New York, NY ISBN 978-1-4503-2772-5 Source MODULARITY '14: Proceedings of the 13th international conference on Modularity Event 13th International Conference on Modularity, 2014-04-22 → 2014-04-26, Lugano, Switzerland Part of collection Institutional Repository Document type conference paper Rights © 2014 S.T. Erdweg, V.A. Vergu, Mira Mezini, Eelco Visser Files PDF p241_erdweg.pdf 728.72 KB Close viewer /islandora/object/uuid:b01042d7-c682-42a1-8456-68becf7c460c/datastream/OBJ/view