TRUSTWORTHY SYSTEMS SUMMER SCHOOL
Yannis Smaragdakis, University of Athens
Declarative Static Program Analysis with the Doop Framework
We discuss the benefits of using logic-based declarative languages as a means to specify static program analysis algorithms. The main focus will be on the Doop framework for pointer analysis of Java programs. Doop encodes multiple analysis algorithms for Java declaratively, using Datalog: a logic-based language for defining (recursive) relations. The algorithms are elegantly specified and easy to understand and adapt. With an aggressive optimization methodology, Doop also achieves very high performance--often an order of magnitude faster than comparable frameworks. With the help of Doop's concise algorithm representation we have explored several new analysis algorithms and developed important insights on existing algorithm variations.
Yannis Smaragdakis (http://smaragd.org) is a Professor at the University of Athens. Prior to that he had a 10+ year faculty career in the US and held a (tenured) Associate Professor position at the University of Massachusetts, Amherst. His interests include program analysis and testing (especially pointer analysis, static-dynamic analysis combinations, and invariant inference); declarative and extensible languages (especially program generators, generics/templates, and applications of the Datalog language); and languages and tools for systems (especially multi-threading, parallel and distributed computing, and program locality). Parts of his FC++ project have been integrated into the Boost C++ libraries, and he continues to maintain strong ties to industrial development and open-source projects. His latest work includes the Doop framework for the analysis of Java bytecode, as well as other related projects for program analysis algorithms expressed declaratively, in the Datalog language. Smaragdakis serves as the academic liaison of LogicBlox Inc., producing an industrial Datalog engine. He also currently serves on the SIGPLAN Executive Committee and was the Program Chair of OOPSLA'16. He is a recipient of an NSF Career award, an ERC Starting/Consolidator grant, and "best paper" awards at ISSTA'12, ASE'07, ISSTA'06, GPCE'04, and USENIX'99.