This program is tentative and subject to change.

Sun 20 Oct 2024 14:00 - 14:30 at IBR East - Software Language Design and Implementation I

To keep large legacy codebases maintainable, software engineers should be able to develop large-scale refactorings. A key aspect of developing restructurings is matching and transforming abstract syntax trees (ASTs). Matching on ASTs is typically done through patterns, which are defined as AST terms with holes. These patterns can be extended to become metapatterns, which increase expressivity. Metapattern examples include disjunctions, descendant patterns, and patches where we inline transformations into the pattern itself.

Despite their expressivity, abstract syntax (meta)patterns can become verbose and require restructuring engineers to be intimately familiar with the data types that define the AST. A better approach is to use concrete syntax patterns, which allows us to denote our patterns in the syntax of the object language. Previous work has shown that we can use external black-box parsers of the object language to compile concrete syntax patterns.

In this paper, we scale this compilation method to include metapatterns. We evaluate this method through an implementation written in Kotlin, and compare existing restructurings without the use of metapatterns to ones written with metapatterns, demonstrating a reduction in code complexity.

This program is tentative and subject to change.

Sun 20 Oct

Displayed time zone: Pacific Time (US & Canada) change

14:00 - 15:30
Software Language Design and Implementation ISLE at IBR East
14:00
30m
Talk
Concrete Syntax Metapatterns
SLE
Luka Miljak Delft University of Technology, Casper Bach Poulsen Delft University of Technology, Rosilde Corvino TNO-ESI
14:30
30m
Talk
Efficient Demand Evaluation of Fixed-Point Attributes Using Static Analysis
SLE
Idriss Riouak Department of Computer Science, Lund University, Sweden, Niklas Fors Lund University, Jesper Öqvist Cognibotics, Görel Hedin Lund University, Christoph Reichenbach Lund University
15:00
30m
Talk
The Design of a Self-Compiling C Transpiler Targeting POSIX Shell
SLE
Laurent Huberdeau Université de Montréal, Cassandre Hamel Université de Montréal, Stefan Monnier Université de Montréal, Marc Feeley Université de Montréal