[发明专利]pthread库多线程C程序到MSVL程序的转换方法、计算机程序有效
申请号: | 201910013534.0 | 申请日: | 2019-01-07 |
公开(公告)号: | CN109885307B | 公开(公告)日: | 2022-03-01 |
发明(设计)人: | 舒新峰;王振宇;高巍然;黄茹;王昌太;史婉玉 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06F8/40 | 分类号: | G06F8/40 |
代理公司: | 西安长和专利代理有限公司 61227 | 代理人: | 黄伟洪 |
地址: | 710061 陕西省西安*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | pthread 多线程 程序 msvl 转换 方法 计算机 | ||
本发明属于计算机软件技术领域,公开了一种pthread库多线程C程序到MSVL程序的转换方法、计算机程序;所述pthread库多线程C程序到MSVL程序的转换方法包括:对pthread库多线程C程序进行静态分析,得到程序的层次语法图;将pthread库多线程C程序通过给出的规则转换为语义等价的MSVL程序。本发明适用于模型检测中pthread库多线程C程序的转换,相较于传统的模型检测方式,MSVL语言的优势在于集系统建模、仿真和验证于一体,可用于描述系统的顺序、选择、循环、并发、同步和信号量等特征,同时可以满足并发及分布式系统的建模需求。本发明提升了工作效率,促进了模型检测技术在学术界和工业界的推广。
技术领域
本发明属于计算机软件技术领域,尤其涉及一种pthread库多线程C程序到MSVL程序的转换方法、计算机程序。
背景技术
目前,业内常用的现有技术是这样的:近年来,随着互联网的发展,多线程程序已经广泛应用于各类网络软件中。然而,网络软件并发性的特点使得多线程程序在执行时会产生访问错误以及安全性问题,为多线程程序的验证带来了巨大的挑战。虽然传统测试仍然是程序验证的主流方法,但由于其只能选取一些典型的数据作为输入对系统进行验证,这种局限性使得多线程程序在验证时的准确性较低。形式化方法的优势在于用严密的数学理论对待验证系统进行建模和验证,已经广泛应用于多线程程序验证中。
模型检测与定理证明是当前两种主流的形式化验证方法。模型检测方法在验证时首先需要使用有穷状态转换系统对待验证系统进行建模,并使用时序逻辑公式描述系统期望的性质,然后用算法穷尽遍历系统的状态以检测性质是否成立,当性质不成立时,模型检测能提供反例以便于错误定位,如Petri网就是一种描述系统元素的异步并发操作的工作模型,可以自然描述并发、冲突、资源争用等系统特性,但是这种方法对于信号量的表达能力有限。定理证明则建立在证明理论的基础上,验证时首先提取系统的模型并表示为逻辑的命题,提取待验证的性质为定理,然后在验证者的引导下,不断对公理和已证明的定理应用推理规则来产生新的定理,该方法可以对线程库进行验证,但该方法的缺点是不能由计算机自动完成,需要验证者辅助进行定理推导。
综上所述,现有技术存在的问题是:现有针对pthread库多线程C程序验证方法的限制较多,表达能力有限,如使用Petri网进行建模时过程复杂,同时该方法对于信号量的表达能力有限。解决这类问题的难度在于找到一种合适的方法来等价表示原始程序的语义。同时,解决这一难题对于促进模型检测在工业界的推广具有重要意义。
发明内容
针对现有技术存在的问题,本发明提供了一种pthread库多线程C程序到MSVL程序的转换方法、计算机程序。
本发明是这样实现的,一种pthread库多线程C程序到MSVL程序的转换方法,所述pthread库多线程C程序到MSVL程序的转换方法包括对pthread库多线程C程序进行静态分析,得到程序的层次语法图;将pthread库多线程C程序通过给出的规则转换为语义等价的MSVL程序;
所述pthread库多线程C程序到MSVL程序的转换方法具体包括以下步骤:
第一步:对pthread库多线程C程序进行预处理,通过词法及语法静态分析的方式得到程序的层次语法图,同时从层次语法图中获得线程信息及信号量信息;得线程信息包含线程标识以及线程入口函数名;信号量信息包含信号量名以及使用该信号量的线程入口函数名集合;
第二步:将pthread库多线程C程序转换成MSVL程序,包括pthread库多线程C程序与MSVL程序之间的数据类型转换规则、表达式转换规则、语句转换规则、普通函数转换规则、线程函数转换规则、信号量转换规则。
进一步,所述pthread库多线程C程序到MSVL程序的线程函数转换规则为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910013534.0/2.html,转载请声明来源钻瓜专利网。