首页> 外文OA文献 >Sound Extraction of Control-Flow Graphs from open Java Bytecode Systems
【2h】

Sound Extraction of Control-Flow Graphs from open Java Bytecode Systems

机译:从开放的Java字节码系统中声音提取控制流图

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

Formal verification techniques have been widely deployed as means to ensure the quality of software products. Unfortunately, they suffer with the combinatorial explosion of the state space. That is, programs have a large number of states, sometimes infinite. A common approach to alleviate the problem is to perform the verification over abstract models from the program. Control-flow graphs (CFG) are one of the most common models, and have been widely studied in the past decades. Unfortunately, previous works over modern programming languages, such as Java, have either neglected features that influence the control-flow, or do not provide a correctness argument about the CFG construction. This is an unbearable issue for formal verification, where soundness of CFGs is a mandatory condition for the verification of safety-critical properties. Moreover, one may want to extract CFGs from the available components of an open system. I.e., a system whose at least one of the components is missing. Soundness is even harder to achieve in this scenario, because of the unknown inter-dependences between software components. In the current work we present a framework to extract control-flow graphs from open Java Bytecode systems in a modular fashion. Our strategy requires the user to provide interfaces for the missing components. First, we present a formal definition of open Java bytecode systems. Next, we generalize a previous algorithm that performs the extraction of CFGs for closed programs to a modular set-up. The algorithm uses the user-provided interfaces to resolve inter-dependences involving missing components. Eventually the missing components will arrive, and the open system will become closed, and can execute. However, the arrival of a component may affect the soundness of CFGs which have been extracted previously. Thus, we define a refinement relation, which is a set of constraints upon the arrival of components, and prove that the relation guarantees the soundness of CFGs extracted with the modular algorithm. Therefore, the control-flow safety properties verified over the original CFGs still hold in the refined model. We implemented the modular extraction framework in the ConFlEx tool. Also, we have implemented the reusage from previous extractions, to enable the incremental extraction of a newly arrived component. Our technique performs substantial over-approximations to achieve soundness. Despite this, our test cases show that ConFlEx is efficient. Also, the extraction of the CFGs gets considerable speed-up by reusing results from previous analyses.
机译:形式验证技术已被广泛采用,以确保软件产品的质量。不幸的是,他们遭受着国家空间的爆炸式增长。也就是说,程序具有大量的状态,有时是无限的。缓解问题的常用方法是对程序中的抽象模型进行验证。控制流图(CFG)是最常见的模型之一,并且在过去的几十年中得到了广泛的研究。不幸的是,以前在现代编程语言(例如Java)上所做的工作要么忽略了影响控制流的功能,要么未提供关于CFG构造的正确性论证。对于形式验证而言,这是一个无法忍受的问题,其中CFG的坚固性是验证安全关键特性的强制性条件。此外,可能要从开放系统的可用组件中提取CFG。即,缺少至少一个组件的系统。在这种情况下,由于软件组件之间未知的相互依存关系,更难实现稳健性。在当前的工作中,我们提出了一个框架,该框架以模块化的方式从开放的Java字节码系统中提取控制流图。我们的策略要求用户为缺少的组件提供接口。首先,我们给出开放Java字节码系统的正式定义。接下来,我们概括一种先前的算法,该算法执行针对封闭程序的CFG提取到模块化设置。该算法使用用户提供的接口来解决涉及缺少组件的相互依赖性。最终,缺少的组件将到达,打开的系统将关闭并可以执行。但是,组件的到来可能会影响先前已提取的CFG的健全性。因此,我们定义了一个细化关系,该关系是组件到达时的一组约束,并证明该关系保证了用模块化算法提取的CFG的安全性。因此,在原始CFG上验证的控制流安全性仍然保留在改进的模型中。我们在ConFlEx工具中实现了模块化提取框架。此外,我们已经实现了先前提取的重用,从而能够增量提取新到达的组件。我们的技术会执行大量的过逼近度以达到稳健性。尽管如此,我们的测试案例表明ConFlEx是有效的。而且,通过重用先前分析的结果,CFG的提取得到了相当大的提速。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号