ABSTRACT
We present Amaru, a framework for Genetic Improvement utilizing Abstract Syntax Trees directly at the interpreter and compiler level. Amaru also enables the mining of frequent, discriminative patterns from Genetic Improvement populations. These patterns in turn can be used to improve the crossover and mutation operators to increase population diversity, reduce the number of individuals failing at run-time and increasing the amount of successful individuals in the population.
- Gabin An, Aymeric Blot, Justyna Petke, and Shin Yoo. 2019. PyGGI 2.0: Language Independent Genetic Improvement Framework. In Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM, Tallinn, Estonia, 1100--1104. Google ScholarDigital Library
- Gabin An, Jinhan Kim, Seongmin Lee, and Shin Yoo. 2017. PyGGI: Python General framework for Genetic Improvement. In Proceedings of Korea Software Congress (KSC 2017). Busan, South Korea, 536--538. https://coinse.kaist.ac.kr/publications/pdfs/An2017aa.pdf.Google Scholar
- Earl T. Barr, Yuriy Brun, Premkumar Devanbu, Mark Harman, and Federica Sarro. [n. d.]. The Plastic Surgery Hypothesis. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (New York, NY, USA, 2014-11-11) (FSE 2014). ACM, 306--317. Google ScholarDigital Library
- Edd Barrett, Carl Friedrich Bolz-Tereick, Rebecca Killick, Sarah Mount, and Laurence Tratt. [n. d.]. Virtual Machine Warmup Blows Hot and Cold. Proceedings of the ACM on Programming Languages 1 ([n. d.]), 52:1--52:27. Issue OOPSLA. Google ScholarDigital Library
- Alexander E. I. Brownlee, Justyna Petke, Brad Alexander, Earl T. Barr, Markus Wagner, and David R. White. 2019. Gin: Genetic Improvement Research Made Easy. In Proceedings of the Genetic and Evolutionary Computation Conference. ACM, Prague, Czech Republic, 985--993. Google ScholarDigital Library
- Alexander E. I. Brownlee, Justyna Petke, and Anna F. Rasburn. [n. d.]. Injecting Shortcuts for Faster Running Java Code. In 2020 IEEE Congress on Evolutionary Computation (CEC) (Glasgow, United Kingdom, 2020-07). IEEE, 1--8. Google ScholarDigital Library
- Daniel Dorfmeister and Oliver Krauss. [n. d.]. Integrating HeuristicLab with Compilers and Interpreters for Non-Functional Code Optimization. In Proceedings of the 2020 Genetic and Evolutionary Computation Conference (Cancun, Mexico, 2020-07). ACM. Google ScholarDigital Library
- Gilles Duboscq, Lukas Stadler, Thomas Würthinger, Doug Simon, Christian Wimmer, and Hanspeter Mössenböck. 2013. Graal IR: An Extensible Declarative Intermediate Representation. In 2nd Asia-Pacific Programming Languages and Compilers Workshop (APPLC'13), as Part of the 10th Annual International Symposium on Code Generation and Optimization. 9.Google Scholar
- Matthias Grimmer, Chris Seaton, Roland Schatz, Thomas Würthinger, and Hanspeter Mössenböck. [n. d.]. High-Performance Cross-Language Interoperability in a Multi-Language Runtime. In Proceedings of the 11th Symposium on Dynamic Languages (Pittsburgh, Pennsylvania, USA, 2015-10-21). ACM, 78--90. Google ScholarDigital Library
- Nguyen Xuan Hoai and Robert I. McKay. [n. d.]. A Framework For Tree-Adjunct Grammar Guided Genetic Programming. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.79.4037&rep=rep1&type=pdfGoogle Scholar
- Michael Kommenda, Gabriel Kronberger, Stefan Wagner, Stephan Winkler, and Michael Affenzeller. 2012. On the Architecture and Implementation of Tree-based Genetic Programming in HeuristicLab. In Proceedings of the 14th Annual Conference Companion on Genetic and Evolutionary Computation (Philadelphia, Pennsylvania, USA) (GECCO '12). ACM, New York, NY, USA, 101--108. Google ScholarDigital Library
- Oliver Krauss. 2021. Amaru - The Amaru Framework for Genetic Improvement and Pattern Mining in Graal and Truffle. Google ScholarCross Ref
- Oliver Krauss. 2022. Pattern Mining and Genetic Improvement in Compilers and Interpreters. Ph.D. Dissertation.Google Scholar
- Oliver Krauss, Hanspeter Mössenböck, and Michael Affenzeller. [n. d.]. Towards Knowledge Guided Genetic Improvement. In 2020 IEEE/ACM International Workshop on Genetic Improvement (GI) (2020-10). Google ScholarDigital Library
- William B. Langdon, Westley Weimer, Justyna Petke, Erik Fredericks, Seongmin Lee, Emily Winter, Michail Basios, Myra B. Cohen, Aymeric Blot, Markus Wagner, Bobby R. Bruce, Shin Yoo, Simos Gerasimou, Oliver Krauss, Yu Huang, and Michael Gerten. [n. d.]. Genetic Improvement @ ICSE 2020. 45, 4 ([n. d.]), 24--30. Google ScholarDigital Library
- David Leopoldseder, Lukas Stadler, Manuel Rigger, Thomas Würthinger, and Hanspeter Mössenböck. [n. d.]. A Cost Model for a Graph-Based Intermediate-Representation in a Dynamic Compiler. In Proceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages (New York, NY, USA, 2018-11-04) (VMIL '18). ACM, 26--35. Google ScholarDigital Library
- Lucia Lucia, David Lo, Lingxiao Jiang, Ferdian Thung, and Aditya Budi. [n. d.]. Extended Comprehensive Study of Association Measures for Fault Localization. Journal of Software: Evolution and Process 26, 2 ([n. d.]), 172--219. Google ScholarDigital Library
- Daniel Manrique, Juan Rios, and Alfonso Rodriguez-Paton. [n. d.]. Grammar-Guided Genetic Programming. Encyclopedia of Artificial Intelligence. Google ScholarCross Ref
- OpenJDK. 2022. Graal Project. http://openjdk.java.net/projects/graal/Google Scholar
- Doug Simon, Christian Wimmer, Bernhard Urban, Gilles Duboscq, Lukas Stadler, and Thomas Würthinger. [n. d.]. Snippets: Taking the High Road to a Low Level. ACM Transactions on Architecture and Code Optimization 12, 2 ([n. d.]), 20:20:1--20:20:25. Google ScholarDigital Library
- Lukas Stadler, Gilles Duboscq, Hanspeter Mössenböck, and Thomas Würthinger. [n. d.]. Compilation Queuing and Graph Caching for Dynamic Compilers. In Proceedings of the Sixth ACM Workshop on Virtual Machines and Intermediate Languages (New York, NY, USA, 2012-10-21) (VMIL '12). ACM, 49--58. Google ScholarDigital Library
- David R. White. [n. d.]. GI in No Time. In Proceedings of the Genetic and Evolutionary Computation Conference (New York, NY, USA, 2017-07-15) (GECCO '17). ACM, 1549--1550. Google ScholarDigital Library
- Christian Wimmer and Thomas Wrthinger. 2012. Truffle: A Self-optimizing Runtime System. In Proceedings of the 3rd Annual Conference on Systems, Programming, and Applications: Software for Humanity (Tucson, Arizona, USA). ACM, New York, NY, USA, 13--14. Google ScholarDigital Library
- Thomas Würthinger, Christian Wimmer, Andreas Wöç, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, and Mario Wolczko. [n. d.]. One VM to Rule Them All. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (New York, NY, USA, 2013-10-29) (Onward! 2013). ACM, 187--204. Google ScholarDigital Library
Index Terms
- Amaru: a framework for combining genetic improvement with pattern mining
Recommendations
Compiler algorithm language (CAL): an interpreter and compiler
ACST'07: Proceedings of the third conference on IASTED International Conference: Advances in Computer Science and TechnologyWe have designed a Compiler Algorithm Language (CAL) to provide compiler writers with a language which is close to actual algorithmic notation. In this work, we have developed an interpreter and debugger for CAL which can be used by researchers for ...
Partial Evaluation of Computation Process—AnApproach to a Compiler-Compiler
This paper reports the relationship between formal description of semantics (i.e., interpreter) of a programming language and an actual compiler. The paper also describes a method to automatically generate an actual compiler from a formal description which ...
SableCC, an Object-Oriented Compiler Framework
TOOLS '98: Proceedings of the Technology of Object-Oriented Languages and SystemsIn this paper, we introduce SableCC, an object-oriented framework that generates compilers (and interpreters) in the Java programming language. This framework is based on two fundamental design decisions. Firstly, the framework uses object-oriented ...
Comments