Checkers: Multi-modal Darwinian API Optimisation
Pages 291 - 292
Abstract
Advent of microservices has increased the popularity of the API-first design principles. Developers have been focusing on concretising the API to a system before building the system. An API-first approach assumes that the API will be correctly used. Inevitably, most developers, even experienced ones, end-up writing sub-optimal software because of using APIs incorrectly. In this paper, we discuss an automated approach for exploring API equivalence and a framework to synthesise semantically equivalent programs. Unlike existing approaches to API transplantation, we propose an amorphous or formless approach to software translation in which a single API could potentially be replaced by a synthesised sequence of APIs which ensures type progress. Our search is guided by the non-functional goals for the software, a type-theoretic notion of progress, the application's test suite and an automatic multi-modal embedding of the API from its documentation and code analysis.
References
[1]
Michail Basios, Lingbo Li, Fan Wu, Leslie Kanthan, and Earl T. Barr. 2017. Optimising Darwinian Data Structures on Google Guava. In Search Based Software Engineering, Tim Menzies and Justyna Petke (Eds.). Springer International Publishing, Cham, 161--167.
[2]
Michail Basios, Lingbo Li, Fan Wu, Leslie Kanthan, and Earl T. Barr. 2018. Darwinian Data Structure Selection. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018). 118--128.
[3]
Bobby R. Bruce, Justyna Petke, and Mark Harman. 2015. Reducing Energy Consumption Using Genetic Improvement (GECCO '15). Association for Computing Machinery, New York, NY, USA, 1327--1334.
[4]
Casey Casalnuovo, Earl T. Barr, Santanu Kumar Dash, Prem Devanbu, and Emily Morgan. 2020. A Theory of Dual Channel Constraints. In International Conference on Software Engineering (ICSE), New Ideas and Emerging Results (NIER).To appear.
[5]
Santanu Kumar Dash, Miltiadis Allamanis, and Earl T. Barr. 2018. RefiNym: using names to refine types. In Proceedings of the 2018 ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/SIGSOFT FSE 2018, 2018. 107--117.
[6]
Nicola Dragoni, Saverio Giallorenzo, Alberto Lluch Lafuente, Manuel Mazzara, Fabrizio Montesi, Ruslan Mustafin, and Larisa Safina. 2017. Microservices: yesterday, today, and tomorrow. In Present and ulterior software eng. Springer, 195--216.
[7]
William B. Langdon, Westley Weimer, Christopher Timperley, Oliver Krauss, Zhen Yu Ding, Yiwei Lyu, Nicolas Chausseau, Eric Schulte, Shin Hwei Tan, Kevin Leach, and et al. 2019. The State and Future of Genetic Improvement. SIGSOFT Softw. Eng. Notes 44, 3 (Nov. 2019), 25--29.
[8]
Mario Linares-Vásquez, Gabriele Bavota, Carlos Bernal-Cárdenas, Massimiliano Di Penta, Rocco Oliveto, and Denys Poshyvanyk. 2018. Multi-Objective Optimization of Energy Consumption of GUIs in Android Apps. ACM Transactions on Software Engineering and Methodologies 27, 3, Article Article 14 (Sept. 2018), 47 pages.
[9]
Profir-Petru Pârţachi, Santanu Kumar Dash, Christoph Treude, and Earl T. Barr. 2020. POSIT: Simultaneously Tagging Natural and Programming Languages. In International Conference on Software Engineering (ICSE). To appear.
[10]
Nadia Polikarpova, Ivan Kuraj, and Armando Solar-Lezama. 2016. Program Synthesis from Polymorphic Refinement Types. In 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '16). 522--538.
[11]
Fan Wu, Westley Weimer, Mark Harman, Yue Jia, and Jens Krinke. 2015. Deep Parameter Optimisation (GECCO '15). ACM, 1375--1382.
Index Terms
- Checkers: Multi-modal Darwinian API Optimisation
Index terms have been assigned to the content through auto-classification.
Recommendations
Comments
Information & Contributors
Information
Published In
June 2020
831 pages
ISBN:9781450379632
DOI:10.1145/3387940
Copyright © 2020 ACM.
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 ACM 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
- SIGSOFT: ACM Special Interest Group on Software Engineering
- KIISE: Korean Institute of Information Scientists and Engineers
- IEEE CS
Publisher
Association for Computing Machinery
New York, NY, United States
Publication History
Published: 25 September 2020
Check for updates
Qualifiers
- Short-paper
- Research
- Refereed limited
Conference
ICSE '20
Sponsor:
- SIGSOFT
- KIISE
ICSE '20: 42nd International Conference on Software Engineering
June 27 - July 19, 2020
Seoul, Republic of Korea
Upcoming Conference
Contributors
Other Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
- 0Total Citations
- 46Total Downloads
- Downloads (Last 12 months)6
- Downloads (Last 6 weeks)0
Reflects downloads up to 17 Oct 2024
Other Metrics
Citations
View Options
Get Access
Login options
Check if you have access through your login credentials or your institution to get full access on this article.
Sign in