Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3397537.3397559acmotherconferencesArticle/Chapter ViewAbstractPublication PagesprogrammingConference Proceedingsconference-collections
research-article

Polyglot code finder

Published: 04 August 2020 Publication History

Abstract

With the increasing complexity of software, it becomes even more important to build on the work of others. At the same time, websites, such as Stack Overflow or GitHub, are used by millions of developers to host their code, which could potentially be reused.
The process of finding the right code, however, is often time-consuming. In addition, the right solution may be written in a programming language that does not fit the developer's requirements. Current approaches to automate code search allow users to search for code based on keywords and transformation rules, but they are limited to one programming language.
Our approach enables developers to find code for reuse written in different languages, which is especially useful when building polyglot applications. In addition to conventional search filters, users can filter code by providing example input and expected output. Based on our approach, we have implemented a tool prototype in GraalSqueak. We evaluate both approach and prototype with an experience report.

References

[1]
Douglas Crockford. 2005. The Elements of JavaScript Style. https://crockford. com/javascript/style1.html
[2]
R. E. Gallardo-Valencia and S. Elliott Sim. 2009. Internet-Scale Code Search. In 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation. 49–52.
[3]
Chase Greco, Tyler Haden, and Kostadin Damevski. 2018. StackInTheFlow: Behavior-Driven Recommendation System for Stack Overflow Posts. In Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings (Gothenburg, Sweden) (ICSE ’18). Association for Computing Machinery, New York, NY, USA, 5–8.
[4]
Fabio Niephaus, Tim Felgentreff, and Robert Hirschfeld. 2019. GraalSqueak: Toward a Smalltalk-based Tooling Platform for Polyglot Programming. In Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (Athens, Greece) (MPLR 2019). ACM, New York, NY, USA, 14–26.
[5]
Fabio Niephaus, Tim Felgentreff, and Robert Hirschfeld. 2019. Towards Polyglot Adapters for the GraalVM. In Proceedings of the Conference Companion of the 3rd International Conference on Art, Science, and Engineering of Programming (Genova, Italy) (Programming ’19). Association for Computing Machinery, New York, NY, USA, Article 1, 3 pages.
[6]
Fabio Niephaus, Eva Krebs, Christian Flach, Jens Lincke, and Robert Hirschfeld. 2019. PolyJuS: A Squeak/Smalltalk-based Polyglot Notebook System for the GraalVM. In Proceedings of the Conference Companion of the 3rd International Conference on Art, Science, and Engineering of Programming (Genova, Italy) (Programming ’19). ACM, New York, NY, USA, Article 24, 6 pages.
[7]
Steven P. Reiss. 2009. Semantics-based Code Search. In Proceedings of the 31st International Conference on Software Engineering (ICSE ’09). IEEE Computer Society, Washington, DC, USA, 243–253.
[8]
Caitlin Sadowski, Kathryn T. Stolee, and Sebastian Elbaum. 2015. How Developers Search for Code: A Case Study. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (Bergamo, Italy) (ESEC/FSE 2015). Association for Computing Machinery, New York, NY, USA, 191–201.
[9]
1145/2786805.2786855
[10]
Squeak/Smalltalk Community. 2019. Method Finder. https://wiki.squeak.org/ squeak/1916
[11]
Thomas Würthinger, Christian Wimmer, Christian Humer, Andreas Wöundefined, Lukas Stadler, Chris Seaton, Gilles Duboscq, Doug Simon, and Matthias Grimmer. 2017. Practical Partial Evaluation for High-Performance Dynamic Language Runtimes. SIGPLAN Not. 52, 6 (June 2017), 662–676.
[12]
10.1145/3140587.3062381
[13]
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 (Indianapolis, Indiana, USA) (Onward! 2013). ACM, New York, NY, USA, 187–204.
[14]
Abstract 1 Introduction 2 Background/Context 3 Approach 4 Implementation 5 Experience Report 6 Related Work 7 Conclusion and Future Work Acknowledgments References

Cited By

View all
  • (2024)On Polyglot Program TestingCompanion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering10.1145/3663529.3663787(507-511)Online publication date: 10-Jul-2024
  • (2023)Polyglot AST: Towards Enabling Polyglot Code Analysis2023 27th International Conference on Engineering of Complex Computer Systems (ICECCS)10.1109/ICECCS59891.2023.00023(116-125)Online publication date: 14-Jun-2023

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
Programming '20: Companion Proceedings of the 4th International Conference on Art, Science, and Engineering of Programming
March 2020
228 pages
ISBN:9781450375078
DOI:10.1145/3397537
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].

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 August 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. GraalVM
  2. code reuse
  3. code search
  4. polyglot
  5. programming experience

Qualifiers

  • Research-article

Conference

<Programming> '20

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)2
Reflects downloads up to 22 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)On Polyglot Program TestingCompanion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering10.1145/3663529.3663787(507-511)Online publication date: 10-Jul-2024
  • (2023)Polyglot AST: Towards Enabling Polyglot Code Analysis2023 27th International Conference on Engineering of Complex Computer Systems (ICECCS)10.1109/ICECCS59891.2023.00023(116-125)Online publication date: 14-Jun-2023

View Options

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