ABSTRACT
Many applications require specialized data structures not found in standard libraries. Implementing new data structures by hand is tedious and error-prone. To alleviate this difficulty, we built a tool called Cozy that synthesizes data structures using counter-example guided inductive synthesis. We evaluate Cozy by showing how its synthesized implementations compare to handwritten implementations in terms of correctness and performance across four real-world programs. Cozy's data structures match the performance of the handwritten implementations while avoiding human error.
- The Bullet physics library. http://bulletphysics.org (Retrieved October 29, 2015).Google Scholar
- J. Cai, P. Facon, F. Henglein, R. Paige, and E. Schonberg. Type transformation and data structure choice. In Constructing Programs From Specifications, pages 126–124. North-Holland, 1991.Google Scholar
- J. Earley. High level iterators and a method for automatically designing data structure representation. Comput. Lang., 1(4):321–342, Jan. 1975. Google ScholarDigital Library
- A. C. Fong and J. D. Ullman. Induction variables in very high level languages. In Proceedings of the 3rd ACM SIGACT-SIGPLAN Symposium on Principles on Programming Languages, POPL ’76, pages 104–112, New York, NY, USA, 1976. ACM. Google ScholarDigital Library
- P. Hawkins, A. Aiken, K. Fisher, M. Rinard, and M. Sagiv. Data representation synthesis. In Proceedings of the 32Nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’11, pages 38–49, New York, NY, USA, 2011. ACM. Google ScholarDigital Library
- C. Loncaric, E. Torlak, and M. D. Ernst. Fast synthesis of fast collections. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016, pages 355–368, New York, NY, USA, 2016. ACM. Google ScholarDigital Library
- Myria distributed database. http://myria.cs.washington.edu (Retrieved April 10, 2015).Google Scholar
- R. Paige and S. Koenig. Finite differencing of computable expressions. ACM Trans. Program. Lang. Syst., 4(3):402–454, July 1982. Google ScholarDigital Library
- Sat4J boolean reasoning library. https://www.sat4j.org (Retrieved February 3, 2016).Google Scholar
- E. Schonberg, J. T. Schwartz, and M. Sharir. An automatic technique for selection of data representations in SETL programs. ACM Trans. Program. Lang. Syst., 3(2):126–143, Apr. 1981. Google ScholarDigital Library
- J. T. Schwartz. Automatic data structure choice in a language of very high level. In Proceedings of the 2Nd ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, POPL ’75, pages 36–40, New York, NY, USA, 1975. ACM. Google ScholarDigital Library
- A. Solar Lezama. Program Synthesis By Sketching. PhD thesis, EECS Department, University of California, Berkeley, Dec 2008.Google Scholar
- A. Udupa, A. Raghavan, J. V. Deshmukh, S. Mador-Haim, M. M. Martin, and R. Alur. TRANSIT: Specifying protocols with concolic snippets. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, pages 287–296, New York, NY, USA, 2013. ACM. Google ScholarDigital Library
- ZTopo topographic map viewer. https://hawkinsp.github.io/ZTopo/ (Retrieved May 8, 2015). Introduction Approach Results Related Work ReferencesGoogle Scholar
Index Terms
- Cozy: synthesizing collection data structures
Recommendations
Fast synthesis of fast collections
PLDI '16: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and ImplementationMany applications require specialized data structures not found in the standard libraries, but implementing new data structures by hand is tedious and error-prone. This paper presents a novel approach for synthesizing efficient implementations of ...
Fast synthesis of fast collections
PLDI '16Many applications require specialized data structures not found in the standard libraries, but implementing new data structures by hand is tedious and error-prone. This paper presents a novel approach for synthesizing efficient implementations of ...
The Data Calculator: Data Structure Design and Cost Synthesis from First Principles and Learned Cost Models
SIGMOD '18: Proceedings of the 2018 International Conference on Management of DataData structures are critical in any data-driven scenario, but they are notoriously hard to design due to a massive design space and the dependence of performance on workload and hardware which evolve continuously. We present a design engine, the Data ...
Comments