Write a Blog >>
PLDI 2020
Mon 15 - Fri 19 June 2020

We present a new approach to semantic code search based on equational reasoning, and the \textsc{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, \textsc{Yogo} can find equivalent code in multiple languages. Our evaluation further shows the utility of \textsc{Yogo} beyond code search: encoding a buggy pattern as a \textsc{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. \textsc{Yogo} is built on the \textsc{Cubix} multi-language infrastructure, and currently supports Java and Python.

Fri 19 Jun
Times are displayed in time zone: (GMT-07:00) Pacific Time (US & Canada) change

06:20 - 07:40: PLDI Research Papers - Parsing, Debugging, and Code Search at PLDI Research Papers live stream
Chair(s): Dan BarowyWilliams College

YouTube lightning session video

pldi-2020-papers06:20 - 06:40
Grzegorz HermanJagiellonian University, Poland
pldi-2020-papers06:40 - 07:00
Romain EdelmannEPFL, Switzerland, Jad HamzaEPFL, Switzerland, Viktor KunĨakEPFL, Switzerland
pldi-2020-papers07:00 - 07:20
Yuanbo LiGeorgia Institute of Technology, USA, Shuo DingGeorgia Institute of Technology, USA, Qirun ZhangGeorgia Institute of Technology, USA, Davide ItalianoApple, USA
pldi-2020-papers07:20 - 07:40
Varot PremtoonMassachusetts Institute of Technology, USA, James KoppelMassachusetts Institute of Technology, USA, Armando Solar-LezamaMassachusetts Institute of Technology, USA