Ambiguous, Informal, and Unsound: Metaprogramming for Naturalness
Program code needs to be understood by both machines and programmers. While the goal of executing programs requires the unambiguity of a formal language, programmers use natural language within these formal constraints to explain implemented concepts to each other. This so called naturalness – the property of programs to resemble human communication – gave rise to statistical and machine learning (ML) approaches in software engineering.
The metaprogramming facilities of most programming environments model the formal elements of a program (meta-objects). If ML is used to support engineering tasks, complex infrastructure needs to bridge the gap between meta-objects and ML models, changes are not reflected in the ML model, and the mapping from an ML output back into the program’s meta-object domain is laborious.
In the scope of this work, we propose to extend metaprogramming facilities to give tool developers access to the representations of program elements within an exchangeable ML model. We demonstrate the usefulness of this abstraction in two case studies on test prioritization and refactoring. We conclude that aligning ML representations with the program’s formal structure lowers the entry barrier to exploit statistical properties in tool development.
Sun 20 Oct
|09:00 - 09:30|
|09:30 - 10:00|
Adrian Mensing, Hendrik van AntwerpenTU Delft, Eelco VisserDelft University of Technology, Casper Bach PoulsenDelft University of TechnologyLink to publication Pre-print
|10:00 - 10:30|
Isaac Oscar GarianoVictoria University of Wellington, Marco ServettoVictoria University Wellington, New ZealandFile Attached