Java 7 introduced programmable dynamic linking in the form of the invokedynamic framework. Static analysis of code containing programmable dynamic linking has often been cited as a significant source of unsoundness in the analysis of Java programs. For example, Java lambdas, introduced in Java 8, are a very popular feature, which is, however, resistant to static analysis, since it mixes invokedynamic with dynamic code generation. These techniques invalidate static analysis assumptions: programmable linking breaks reasoning about method resolution while dynamically generated code is, by definition, not available statically. In this paper, we show that a static analysis can predictively model uses of invokedynamic while also cooperating with extra rules to handle the runtime code generation of lambdas. Our approach plugs into an existing static analysis and helps eliminate all unsoundness in the handling of lambdas (including associated features such as method references) and generic invokedynamic uses. We evaluate our technique on a benchmark suite of our own and on third-party benchmarks, uncovering all code previously unreachable due to unsoundness, highly efficiently.
Thu 18 Jul Times are displayed in time zone: Greenwich Mean Time : Belfast change
13:30 - 15:10: Program Analysis 2Research Papers at Mancy Chair(s): Christian HammerUniversity of Potsdam | |||
13:30 - 13:50 Research paper | Deep Static Modeling of invokedynamic Research Papers DOI Media Attached | ||
13:50 - 14:10 Research paper | Automated Large-scale Multi-language Dynamic Program Analysis in the Wild Research Papers Alex VillazónUniversidad Privada Boliviana, Bolivia, Haiyang SunUniversità della Svizzera italiana, Andrea RosàUniversity of Lugano, Switzerland, Eduardo RosalesUniversity of Lugano, Switzerland, Daniele BonettaOracle Labs, Isabella DefilippisUniversidad Privada Boliviana (UPB), Sergio OportoUniversidad Privada Boliviana (UPB), Walter BinderUniversity of Lugano, Switzerland DOI Media Attached | ||
14:10 - 14:30 Research paper | MagpieBridge: A General Approach to Integrating Static Analyses into IDEs and Editors Research Papers Linghui LuoPaderborn University, Julian DolbyIBM Research, Eric BoddenHeinz Nixdorf Institut, Paderborn University and Fraunhofer IEM DOI Pre-print Media Attached | ||
14:30 - 14:50 Research paper | Reasoning About Foreign Function Interfaces Without Modelling the Foreign Language Research Papers Alexi TurcotteNortheastern University, Ellen ArtecaNortheastern University, Gregor RichardsUniversity of Waterloo DOI Media Attached | ||
14:50 - 15:10 Research paper | Multiverse Debugging: Non-deterministic Debugging for Non-deterministic Programs Research Papers Carmen Torres LopezVrije Universiteit Brussel, Robbert Gurdeep SinghUniversiteit Gent, Belgium, Stefan MarrUniversity of Kent, Elisa Gonzalez BoixVrije Universiteit Brussel, Belgium, Christophe ScholliersUniversiteit Gent, Belgium DOI Media Attached |