Abstract: Turing Award winner Niklaus Wirth famously noted, `Algorithms + Data Structures = Programs', and it follows that data structures should be carefully considered for effective application development. In fact, data structures are the major source of program understanding, performance engineering, bug detection, and security enhancement. However, due to the nature of ever-changing data structures, their unpredictable performance on program input (underlying architecture), and their hard-to-track bug symptoms, existing program analysis techniques have achieved little success.
In this talk, I will present techniques for analyzing and optimizing data structures in fundamentally new approaches: (1) detecting data structures; identifying what data structures are used within an application is a critical step toward effective program understanding and performance engineering. (2) selecting efficient data structures; analyzing data structures' behavior can recognize improper use of data structures and suggest alternative data structures better suited for the current situation where the application runs.
Speaker: Changhee Jung is an assistant professor in Computer Science at Virginia Tech. His research interests include compilers, computer architectures, software engineering, and dependable systems. From 2005 to 2008, he was a research staff member at the Electronics and Telecommunications Research Institute (ETRI), Korea. Over the past three summers (2010-2012), he has worked as an software engineering intern at Google's compiler optimization team.