Given the different and complementary strengths of various programming languages, it is well justified to combine multiple languages in developing a software system, which has become a norm in today's software practice. In fact, the vast majority (over 80%) of modern software systems are multi-language software. Meanwhile, software failures are known to be costly, and a common methodology for preventing these failures and reducing the cost is to reason about run-time behaviors of software (i.e., dynamic program reasoning). However, extant software-quality assurance support based on dynamic program reasoning still focuses on, and is limited to, software developed in single languages, largely dismissing what happens at and across language boundaries. As a result, cross-language behaviors are left unattended and holistic quality assurance of multi-language systems is critically lacking. This project aims to advance the state of knowledge about software-quality assurance by enabling practical dynamic program reasoning across language boundaries. The research will result in a new foundation of dynamic analysis and a series of application tools to diagnose cross-language correctness and security issues, which will help produce multi-language systems of improved quality. Moreover, this project will have an industrial impact realized through collaborations with and result disseminations via industrial partners, and will broaden the participation in computing of underrepresented minorities. <br/><br/>The technical aims of the project are divided into three thrusts. First, multi-language code-construction mechanisms and their effects on the resulting software’s behavior and quality will be characterized. This will produce new knowledge about how modern multi-language software is constructed in terms of language selection and interoperation. Then, in the second thrust, practically scalable and cost-effective analyses for holistic cross-language dependence reasoning will be developed, as informed by the knowledge and insights gained from the characterization study. The key principle is to model and reason about cross-language code dependencies in a way that not only overcomes semantics disparities caused by language heterogeneity but also readily accommodates new/additional languages. The third thrust will build on the cross-language dependence reasoning to develop practically efficient and precise cross-language information flow reasoning, which will then provide immediate support for diagnosing program faults regarding functionality bugs and security vulnerabilities across language boundaries. This project will validate the generated new knowledge and techniques through extensive evaluation against real-world, complex multi-language systems in terms of scalability, cost-effectiveness, and capabilities in practical applications.<br/><br/>This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.