“…To this end, several methods automatically infer programming patterns [e.g., 19,32,58] and security specifications [e.g., 28,34,54], from code, revision histories [33], and preconditions of APIs [e.g., 7,41,55]. A related strain of research has followed a more principled approach by modeling and inferring security policies [e.g., 6,36,52,57] for discovering informationflow vulnerabilities. Similar to our method, many of these approaches are based on syntax trees and code slices as well as representations that combine syntax, control flow, and datadependence relationships [e.g., 27,29].…”