arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1808.01210cs.SE
收藏

轻量级多语言软件分析

Lightweight Multilingual Software Analysis

Damian M. Lyons, Anne Marie Bogar, David Baird

摘要:

开发人员的偏好、语言能力和旧语言的持续存在促成了大型软件代码库通常是多语言的趋势,即用一种以上的计算机语言编写。虽然开发人员可以利用单语软件开发工具来构建软件组件,但公司面临着管理由此产生的大型多语言代码库以解决安全性,效率和质量指标问题的问题。关键的挑战是解决语言互操作性接口的不透明性:一种语言在第二种语言中调用过程(这可能会调用第三种,甚至回到第一种),导致潜在的混乱,低效和不安全的代码库。提出了一种用于大型多语言代码库的轻量级静态分析的体系结构:MLSA体系结构。它的模块化和面向表的结构解决了多种语言和语言互操作性API的开放性。在这里,我们专注于作为一个应用程序的调用图,捕捉语言间和语言内调用的建设。给出了从代码库中提取多语言调用图的算法,并讨论了多语言软件工程分析的几个实例。MLSA的实施和测试的状态,并讨论了对未来工作的影响。

英文摘要:

Developer preferences, language capabilities and the persistence of older languages contribute to the trend that large software codebases are often multilingual, that is, written in more than one computer language. While developers can leverage monolingual software development tools to build software components, companies are faced with the problem of managing the resultant large, multilingual codebases to address issues with security, efficiency, and quality metrics. The key challenge is to address the opaque nature of the language interoperability interface: one language calling procedures in a second (which may call a third, or even back to the first), resulting in a potentially tangled, inefficient and insecure codebase. An architecture is proposed for lightweight static analysis of large multilingual codebases: the MLSA architecture. Its modular and table-oriented structure addresses the open-ended nature of multiple languages and language interoperability APIs. We focus here as an application on the construction of call-graphs that capture both inter-language and intra-language calls. The algorithms for extracting multilingual call-graphs from codebases are presented, and several examples of multilingual software engineering analysis are discussed. The state of the implementation and testing of MLSA is presented, and the implications for future work are discussed.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑