skip to main content
10.1145/3135932.3135934acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Genetic improvement in code interpreters and compilers

Published: 22 October 2017 Publication History

Abstract

Modern compilers provide code optimizations before and during run-time, thus moving required domain knowledge about the compilation process away from the developer and speeding up resulting software. These optimizations are often based on formal proof, or alternatively have recovery paths as backup. Genetic improvement (GI), a field of science utilizing genetic programming, a stochastic optimization technique, has been previously utilized to fix bugs in software and improve non-functional software requirements.
This work proposes to research the applicability of GI in an offline phase directly at the interpreter or compiler level. The primary goal is to reformulate existing source code in such a way that existing optimizations can be applied in order to increase performance even further and requiring even less domain knowledge from the developer about a programming language and/or compiler. From these reformulations, patterns can be identified that allow code restructuring without the overhead GI poses.

References

[1]
Earl T. Barr, Yuriy Brun, Premkumar Devanbu, Mark Harman, and Federica Sarro. 2014. The Plastic Surgery Hypothesis. In Proceedings of the 22Nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014) . ACM, New York, NY, USA, 306–317.
[2]
V. D’Silva, M. Payer, and D. Song. 2015. The Correctness-Security Gap in Compiler Optimization. In 2015 IEEE Security and Privacy Workshops. 73–87.
[3]
Tianyi David Han and Tarek S. Abdelrahman. 2011. Reducing Branch Divergence in GPU Programs. In Proceedings of the Fourth Workshop on General Purpose Processing on Graphics Processing Units (GPGPU-4) . Article 3, 8 pages.
[4]
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 (GECCO ’12) . ACM, New York, NY, USA, 101–108.
[5]
William B. Langdon. 2015. Genetic Improvement of Software for Multiple Objectives . Springer International Publishing, Cham, 12–28.
[6]
W. B. Langdon and M. Harman. 2015. Optimizing Existing Software With Genetic Programming. IEEE Transactions on Evolutionary Computation 19, 1 (2015), 118–135.
[7]
W. B. Langdon and J. P. Nordin. 2000. Seeding Genetic Programming Populations . Springer Berlin Heidelberg, Berlin, Heidelberg, 304–315.
[8]
Steven S. Muchnick. 1997. Advanced Compiler Design and Implementation . Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
[9]
Eric Schulte, Zachary P. Fry, Ethan Fast, Westley Weimer, and Stephanie Forrest. 2014. Software Mutational Robustness. Genetic Programming and Evolvable Machines 15, 3 (Sept. 2014), 281–312.
[10]
Xi Wang, Nickolai Zeldovich, M. Frans Kaashoek, and Armando SolarLezama. 2013. Towards Optimization-safe Systems: Analyzing the Impact of Undefined Behavior. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (SOSP ’13) . ACM, New York, NY, USA, 260–275.
[11]
Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, and Mario Wolczko. 2013. One VM to Rule Them All. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2013) . ACM, New York, NY, USA, 187–204.

Cited By

View all
  • (2020)Integrating heuristiclab with compilers and interpreters for non-functional code optimizationProceedings of the 2020 Genetic and Evolutionary Computation Conference Companion10.1145/3377929.3398103(1580-1588)Online publication date: 8-Jul-2020
  • (2018)Towards a framework for stochastic performance optimizations in compilers and interpretersProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237024(1-7)Online publication date: 12-Sep-2018
  • (2018)Dynamic fitness functions for genetic improvement in compilers and interpretersProceedings of the Genetic and Evolutionary Computation Conference Companion10.1145/3205651.3208308(1590-1597)Online publication date: 6-Jul-2018

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SPLASH Companion 2017: Proceedings Companion of the 2017 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity
October 2017
56 pages
ISBN:9781450355148
DOI:10.1145/3135932
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 October 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Code Optimization
  2. Compilation
  3. Genetic Improvement
  4. Genetic Programming
  5. Non-Functional

Qualifiers

  • Research-article

Conference

SPLASH '17
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)3
Reflects downloads up to 04 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Integrating heuristiclab with compilers and interpreters for non-functional code optimizationProceedings of the 2020 Genetic and Evolutionary Computation Conference Companion10.1145/3377929.3398103(1580-1588)Online publication date: 8-Jul-2020
  • (2018)Towards a framework for stochastic performance optimizations in compilers and interpretersProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237024(1-7)Online publication date: 12-Sep-2018
  • (2018)Dynamic fitness functions for genetic improvement in compilers and interpretersProceedings of the Genetic and Evolutionary Computation Conference Companion10.1145/3205651.3208308(1590-1597)Online publication date: 6-Jul-2018

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media