Powered by
2nd ACM SIGPLAN International Workshop on Meta-Programming Techniques and Reflection (Meta 2017),
October 22, 2017,
Vancouver, BC, Canada
2nd ACM SIGPLAN International Workshop on Meta-Programming Techniques and Reflection (Meta 2017)
Frontmatter
Message from the Chairs
It is our pleasure to welcome you to the proceedings of the workshop on meta-programming techniques and reflection (Meta'17), co-located with SPLASH'17 in Vancouver, Canada.
The Meta'17 workshop aims to bring together researchers working on metaprogramming and reflection, as well as users building applications, language extensions, or software tools. With the changing hardware and software landscape, and increased heterogeneity of systems, metaprogramming becomes an important research topic to handle the associate complexity once more.
Meta'17 is the second workshop in the series that started in 2016.
The process of selecting contributions to the workshop was different from the one of the previous year in order to enable the discussion of more mature as well as early material. To this end, the workshop had a submission process with two separate deadlines.
The first one is for more mature ideas, which are published as part of these proceedings.
The second deadline is for work-in-progress research and new ideas, which are discussed as part of the workshop.
Papers submitted for publication received each three reviews. Work-in-progress papers received at least two reviews. Submissions by chairs or PC members received an extra review.
Papers
Toward Abstract Interpretation of Program Transformations
Sven Keidel and Sebastian Erdweg
(Delft University of Technology, Netherlands)
Developers of program transformations often reason about transformations to assert certain properties of the generated code. We propose to apply abstract interpretation to program transformations in order to automate and support such reasoning. In this paper, we present work in progress on the development and application of an abstract interpreter for the program transformation language Stratego. In particular, we present challenges encountered during the development of the abstract Stratego interpreter and how we intend to solve these challenges.
@InProceedings{Meta17p1,
author = {Sven Keidel and Sebastian Erdweg},
title = {Toward Abstract Interpretation of Program Transformations},
booktitle = {Proc.\ Meta},
publisher = {ACM},
pages = {1--5},
doi = {10.1145/3141517.3141855},
year = {2017},
}
Publisher's Version
An Annotation-Based API for Supporting Runtime Code Annotation Reading
Phyllipe Lima, Eduardo Guerra, Marco Nardes, Andrea Mocci,
Gabriele Bavota, and
Michele Lanza
(INPE, Brazil; University of Lugano, Switzerland)
Code annotations are the core of the main APIs and frameworks for enterprise development, and are widely used on several applications. However, despite these APIs and frameworks made advanced uses of annotations, the language API for annotation reading is far from their needs. In particular, annotation reading is still a relatively complex task, that can consume a lot of development time and that can couple the framework internal structure to its annotations. This paper proposes an annotation-based API to retrieve metadata from code annotations and populate an instance with meta-information ready to be used by the framework. The proposed API is based on best practices and approaches for metadata definition documented on patterns, and has been implemented by a framework named Esfinge Metadata. We evaluated the approach by refactoring an existing framework to use it through Esfinge Metadata. The original and the refactored versions are compared using several code assessment techniques, such as software metrics, and bad smells detection, followed by a qualitative analysis based on source code inspection. As a result, the case study revealed that the usage of the proposed API can reduce the coupling between the metadata reading code and the annotations.
@InProceedings{Meta17p6,
author = {Phyllipe Lima and Eduardo Guerra and Marco Nardes and Andrea Mocci and Gabriele Bavota and Michele Lanza},
title = {An Annotation-Based API for Supporting Runtime Code Annotation Reading},
booktitle = {Proc.\ Meta},
publisher = {ACM},
pages = {6--14},
doi = {10.1145/3141517.3141856},
year = {2017},
}
Publisher's Version
proc time: 1.04