当前位置: X-MOL 学术Softw. Pract. Exp. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
OPAL: An extensible framework for ontology‐based program analysis
Software: Practice and Experience ( IF 2.6 ) Pub Date : 2020-03-17 , DOI: 10.1002/spe.2821
Dileep Kumar Pattipati 1 , Rupesh Nasre 1 , Sreenivasa Kumar Puligundla 1
Affiliation  

The syntactic information of a program can be represented as resource description framework (RDF) triples called program triples. We propose an extensible static analysis framework, called OPAL—Ontology‐based Program AnaLysis. The framework enables formal representation of external knowledge, such as usage knowledge of libraries and domain knowledge. Utilizing this knowledge and the program triples, we compute the semantic information, called static trace of the program. It is generated through path‐sensitive intraprocedural traversal of the program. We approximate information in case of loops by unrolling them a fixed number of times. The main contribution of the framework is to store the static trace as RDF triples called semantic triples. They are described using the Program Analysis ontology proposed in this article. The program triples and the semantic triples are together called consolidated program triples. These triples are stored and used to accelerate the execution of client‐analyses specified by the end user. In the framework, a client‐analysis is specified by a set of conjunctive expressions that use SPARQL (W3C RDF query language) queries. The framework is effective for the client‐analyses that warrant sound and approximate information. The effectiveness is assessed first, using two source‐code‐analyses that require only the program triples, and then 10 intraprocedural path‐sensitive analyses that require the consolidated program triples. Using NPB and SPEC 2006 benchmarks, we achieve an improvement in the conciseness of analysis specifications. Also, the execution time using OPAL is competitive to LLVM's clang for individual analysis and outperforms clang over a series of analyses because of the reuse of consolidated program triples.

中文翻译:

OPAL:基于本体的程序分析的可扩展框架

程序的句法信息可以表示为资源描述框架 (RDF) 三元组,称为程序三元组。我们提出了一个可扩展的静态分析框架,称为 OPAL——基于本体的程序分析。该框架能够正式表示外部知识,例如图书馆的使用知识和领域知识。利用这些知识和程序三元组,我们计算语义信息,称为程序的静态跟踪。它是通过程序的路径敏感程序内遍历生成的。我们通过将循环展开固定次数来估计循环情况下的信息。该框架的主要贡献是将静态轨迹存储为称为语义三元组的 RDF 三元组。它们是使用本文中提出的程序分析本体来描述的。程序三元组和语义三元组统称为合并程序三元组。这些三元组被存储并用于加速最终用户指定的客户端分析的执行。在该框架中,客户端分析由一组使用 SPARQL(W3C RDF 查询语言)查询的联合表达式指定。该框架对于保证可靠和近似信息的客户分析是有效的。首先评估有效性,使用两个只需要程序三元组的源代码分析,然后是 10 个需要合并程序三元组的程序内路径敏感分析。使用 NPB 和 SPEC 2006 基准,我们改进了分析规范的简洁性。此外,使用 OPAL 的执行时间与 LLVM 竞争
更新日期:2020-03-17
down
wechat
bug