【24h】

A Hierarchical CPN Model Automatically Generating Method Aiming at Multithreading Program Algorithm Error Detection

机译:面向多线程程序算法错误检测的分层CPN模型自动生成方法

获取原文
获取原文并翻译 | 示例

摘要

Due to the uncertainty of concurrency, the detection of algorithm error of multithreading concurrent software is very difficult, and it is difficult to guarantee the correctness. This paper proposes an automatic model generation method, which automatically reads the multithreading JAVA program and generates the Hierarchical Coloured Petri Nets (HCPN) model consistent with the program behavior. Firstly, reading and analyzing the program source program, storing function declarations in the function list, storing global variables in the global variable list, and building a local variable list and a statement binary tree for each function. Secondly, the multithreading program is converted to a HCPN model. Variables in the program correspond to the token-flowing supported by the variable group in the model. The function calls correspond to substitution transitions in the model. Global variables exist in the whole model, and the local variables exist in the function, the subpage model correspond to the function. The preorder traversal statement binary tree obtains the nested or sequential relationships between the statements, converting the program statement into model fragments and then connecting into a complete HCPN model according to the relationship between the statements. Finally, generating a model file conforming to the CPN Tools file format. So that ASK-CTL model checking method in CPN Tools could be used on the generated model for demand attributes, which detecting algorithm errors. Models generated by this method are consistent with source programs, so model errors in model checking are also program errors. Experimental results verify the validity and correctness of the proposed method.
机译:由于并发性的不确定性,多线程并发软件算法错误的检测非常困难,并且难以保证其正确性。本文提出了一种自动生成模型的方法,该方法可以自动读取多线程JAVA程序并生成与程序行为一致的分层彩色Petri网(HCPN)模型。首先,阅读和分析程序源程序,将函数声明存储在函数列表中,将全局变量存储在全局变量列表中,并为每个函数构建局部变量列表和语句二进制树。其次,将多线程程序转换为HCPN模型。程序中的变量对应于模型中变量组支持的令牌流。函数调用对应于模型中的替换转换。全局变量存在于整个模型中,局部变量存在于函数中,子页面模型对应于该函数。预遍历语句二进制树获取语句之间的嵌套或顺序关系,将程序语句转换为模型片段,然后根据语句之间的关系连接到完整的HCPN模型。最后,生成符合CPN工具文件格式的模型文件。因此,可以将CPN工具中的ASK-CTL模型检查方法用于生成的需求属性模型,从而检测算法错误。通过这种方法生成的模型与源程序一致,因此模型检查中的模型错误也是程序错误。实验结果验证了该方法的有效性和正确性。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号