Data Types as a More Ergonomic Frontend for Grammar-Guided Genetic ProgrammingVirtual
Genetic Programming (GP) is an heuristic method that can be applied to many Machine Learning, Optimization and Engineering problems. In particular, it has been widely used in Software Engineering for Test-case generation, Program Synthesis and Improvement of Software (GI).
Grammar-Guided Genetic Programming (GGGP) approaches allow the user to refine the domain of valid program solutions. Backus Normal Form is the most popular interface for describing Context-Free Grammars (CFG) for GGGP. BNF and its derivatives have the disadvantage of interleaving the grammar language and the target language of the program.
We propose to embed the grammar as an internal Domain-Specific Language in the host language of the framework. This approach has the same expressive power as BNF and EBNF while using the host language type-system to take advantage of all the existing tooling: linters, formatters, type-checkers, autocomplete, and legacy code support. These tools have a practical utility in designing software in general, and GP systems in particular.
We also present Meta-Handlers, user-defined overrides of the tree-generation system. This technique extends our object-oriented encoding with more practicability and expressive power than existing CFG approaches, achieving the same expressive power of Attribute Grammars, but without the grammar vs target language duality.
Furthermore, we evidence that this approach is feasible, showing an example Python implementation as proof. We also compare our approach against textual BNF-representations w.r.t. expressive power and ergonomics. These advantages do not come at the cost of performance, as shown by our empirical evaluation on 5 benchmarks of our example implementation against PonyGE2. We conclude that our approach has better ergonomics with the same expressive power and performance of textual BNF-based grammar encodings.
Wed 7 DecDisplayed time zone: Auckland, Wellington change
10:30 - 12:00 | |||
10:30 22mTalk | Incremental Processing of Structured Data in DatalogVirtual GPCE DOI | ||
10:52 22mTalk | Data Types as a More Ergonomic Frontend for Grammar-Guided Genetic ProgrammingVirtual GPCE Guilherme Espada University of Lisbon, Leon Ingelse University of Lisbon, Paulo Canelas University of Lisbon; Carnegie Mellon University, Pedro Barbosa University of Lisbon; Instituto de Medicina Molecular, Alcides Fonseca University of Lisbon DOI | ||
11:15 22mTalk | Deep Fusion for Efficient Nested Recursive ComputationsVirtual GPCE Amir Shaikhha University of Edinburgh DOI | ||
11:37 22mTalk | Composable Sequence Macros for Fast IterationVirtual GPCE Anna Bolotina Czech Technical University in Prague, Ryan Culpepper Czech Technical University in Prague DOI |