Abstract: This talk gives an overview of two recently developed general classes of practical techniques for validating compilers – equivalence modulo input (EMI) testing, and skeletal program enumeration (SPE) – and a continuous, extensive effort in applying/adapting them to find and report thousands of bugs across a range of production and research compilers for C/C++ (GCC, Clang/LLVM, ICC, CompCert), Scala, Rust, Go, etc. Both EMI and SPE are widely applicable; beyond compiler testing, they can be adapted to validate program transformations, static analysis and verification tools, and software systems in general.
Bio: Zhendong Su is a Professor in Computer Science at the Swiss Federal Institute of Technology in Zurich (ETH Zurich). Previously, he was a Professor in Computer Science and a Chancellor’s Fellow at the University of California, Davis (UC Davis). He received his PhD in Computer Science from the University of California, Berkeley (UC Berkeley). His research spans programming languages and compilers, software engineering, computer security, deep learning and education technologies. His work was recognized by an ACM SIGSOFT Impact Paper Award, a Google Scholar Classic Paper (2017) Award, multiple best/distinguished paper awards at top venues (e.g., PLDI, OOPSLA, EAPLS, TACAS, ISSTA, and ICSE), an ACM CACM Research Highlight, an NSF CAREER Award, a UC Davis Outstanding Faculty Award, and multiple industrial faculty awards (e.g., Cisco, Google, Huawei, IBM, Microsoft, and Mozilla). He serves on the steering committees of ISSTA and ESEC/FSE, served as an Associate Editor for ACM TOSEM, co-chaired SAS 2009, program chaired ISSTA 2012, and program co-chaired SIGSOFT FSE 2016.