首页> 外文会议>IEEE/ACM International Conference on Automated Software Engineering >Broadening Horizons of Multilingual Static Analysis: Semantic Summary Extraction from C Code for JNI Program Analysis
【24h】

Broadening Horizons of Multilingual Static Analysis: Semantic Summary Extraction from C Code for JNI Program Analysis

机译:多语言静态分析视野:JNI计划分析C代码的语义概要提取

获取原文

摘要

Most programming languages support foreign language interoperation that allows developers to integrate multiple modules implemented in different languages into a single multilingual program. While utilizing various features from multiple languages expands expressivity, differences in language semantics require developers to understand the semantics of multiple languages and their inter-operation. Because current compilers do not support compile-time checking for interoperation, they do not help developers avoid in-teroperation bugs. Similarly, active research on static analysis and bug detection has been focusing on programs written in a single language. In this paper, we propose a novel approach to analyze multilingual programs statically. Unlike existing approaches that extend a static analyzer for a host language to support analysis of foreign function calls, our approach extracts semantic summaries from programs written in guest languages using a modular analysis technique, and performs a whole-program analysis with the extracted semantic summaries. To show practicality of our approach, we design and implement a static analyzer for multilingual programs, which analyzes JNI interoperation between Java and C. Our empirical evaluation shows that the analyzer is scalable in that it can construct call graphs for large programs that use JNI interoperation, and useful in that it found 74 genuine interoperation bugs in real-world Android JNI applications.
机译:大多数编程语言支持外语互操作,允许开发人员将以不同语言实现的多种模块集成到一个多语言程序中。在利用多种语言中的各种功能展开表达性,语言语义的差异需要开发人员了解多种语言的语义及其互操作。由于当前编译器不支持对互操作的编译时检查,因此他们无助于开发人员避免in-teroperation错误。同样,关于静态分析和错误检测的积极研究一直在关注以单一语言编写的程序。在本文中,我们提出了一种新的方法来静态分析多语言程序。与延长静态分析仪的现有方法不同,以支持对外函数调用的分析,我们的方法利用模块化分析技术从以客人语言编写的程序提取语义摘要,并使用提取的语义摘要进行全程分析。为了表明我们的方法的实用性,我们设计并实施了一个静态分析仪,用于多语言程序,分析Java和C之间的JNI互操作。我们的经验评估表明分析仪可扩展,因为它可以构建使用JNI互操作的大型程序的呼叫图并且有用的是它在现实世界Android JNI应用程序中找到了74个真正的互操作错误。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号