| dc.contributor.author | Premtoon, Varot | |
| dc.contributor.author | Koppel, James | |
| dc.contributor.author | Solar-Lezama, Armando | |
| dc.date.accessioned | 2021-11-01T17:25:19Z | |
| dc.date.available | 2021-11-01T17:25:19Z | |
| dc.date.issued | 2020-06-06 | |
| dc.identifier.uri | https://hdl.handle.net/1721.1/136993 | |
| dc.description.abstract | © 2020 Owner/Author. We present a new approach to semantic code search based on equational reasoning, and the Yogo tool implementing this approach. Our approach works by considering not only the dataflow graph of a function, but also the dataflow graphs of all equivalent functions reachable via a set of rewrite rules. In doing so, it can recognize an operation even if it uses alternate APIs, is in a different but mathematically-equivalent form, is split apart with temporary variables, or is interleaved with other code. Furthermore, it can recognize when code is an instance of some higher-level concept such as iterating through a file. Because of this, from a single query, Yogo can find equivalent code in multiple languages. Our evaluation further shows the utility of Yogo beyond code search: encoding a buggy pattern as a Yogo query, we found a bug in Oracle's Graal compiler which had been missed by a hand-written static analyzer designed for that exact kind of bug. Yogo is built on the Cubix multi-language infrastructure, and currently supports Java and Python. | en_US |
| dc.language.iso | en | |
| dc.publisher | ACM | en_US |
| dc.relation.isversionof | 10.1145/3385412.3386001 | en_US |
| dc.rights | Creative Commons Attribution 4.0 International license | en_US |
| dc.rights.uri | https://creativecommons.org/licenses/by/4.0/ | en_US |
| dc.source | ACM | en_US |
| dc.title | Semantic code search via equational reasoning | en_US |
| dc.type | Article | en_US |
| dc.identifier.citation | Premtoon, Varot, Koppel, James and Solar-Lezama, Armando. 2020. "Semantic code search via equational reasoning." Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). | |
| dc.contributor.department | Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science | |
| dc.contributor.department | Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory | |
| dc.relation.journal | Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) | en_US |
| dc.eprint.version | Final published version | en_US |
| dc.type.uri | http://purl.org/eprint/type/ConferencePaper | en_US |
| eprint.status | http://purl.org/eprint/status/NonPeerReviewed | en_US |
| dc.date.updated | 2021-08-02T13:57:12Z | |
| dspace.orderedauthors | Premtoon, V; Koppel, J; Solar-Lezama, A | en_US |
| dspace.date.submission | 2021-08-02T13:57:13Z | |
| mit.license | PUBLISHER_CC | |
| mit.metadata.status | Authority Work and Publication Information Needed | en_US |