CN107193745B - PLC程序到NuSMV输入模型的自动化构建方法 - Google Patents

PLC程序到NuSMV输入模型的自动化构建方法 Download PDF

Info

Publication number
CN107193745B
CN107193745B CN201710382639.4A CN201710382639A CN107193745B CN 107193745 B CN107193745 B CN 107193745B CN 201710382639 A CN201710382639 A CN 201710382639A CN 107193745 B CN107193745 B CN 107193745B
Authority
CN
China
Prior art keywords
arc
state
language
variable
sentence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710382639.4A
Other languages
English (en)
Other versions
CN107193745A (zh
Inventor
魏强
常天佑
麻荣宽
耿洋洋
刘雯雯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Red Neurons Co Ltd
PLA Information Engineering University
Original Assignee
Shanghai Red Neurons Co Ltd
PLA Information Engineering University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Red Neurons Co Ltd, PLA Information Engineering University filed Critical Shanghai Red Neurons Co Ltd
Priority to CN201710382639.4A priority Critical patent/CN107193745B/zh
Publication of CN107193745A publication Critical patent/CN107193745A/zh
Application granted granted Critical
Publication of CN107193745B publication Critical patent/CN107193745B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13138High level language HLL, structured text ST, resembles pascal

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及工业自动化控制技术领域,特别是涉及一种PLC程序到NuSMV输入模型的自动化构建方法,包括对PLC的ST语言进行分析,构建ST语言的语法;根据给出的ST语法对ST程序进行处理,将ST程序解析为抽象语法树AST;对抽象语法树AST进行处理,分析ST语言语句的控制流特征,确定各语句生成控制流图CFG的算法;根据控制流图CFG对ST程序进行数据流分析,构建状态转换邻接表和变量取值变化邻接表;根据构建的状态转换邻接表和变量取值变化邻接表生成NuSMV输入模型。本发明大大提高NuSMV工具对PLC程序进行模型检测的效率和准确度,实现对工业控制系统PLC代码的安全性验证。

Description

PLC程序到NuSMV输入模型的自动化构建方法
技术领域
本发明涉及工业自动化控制技术领域,特别是涉及一种PLC程序到NuSMV输入模型的自动化构建方法。
背景技术
工业控制系统广泛应用到工业自动化控制领域,比如电力、石油、国防科技等国家基础设施,以及食品、医药、交通等民生领域。工控安全事关经济发展、社会稳定和国家安全。近年来,随着信息化和工业化深入融合,工业控制系统从单机走向互联,从封闭走向开放,从自动化走向智能化,但同时也给工业控制系统安全带来前所未有的挑战。
工业控制器,即可编程逻辑控制器(PLC)作为工业控制系统的大脑,是一种专门用于工业控制的计算机,通过其上运行的业务代码控制整个系统的运行,PLC代码的安全直接管关系到整个工业控制系统的安全。可编程逻辑控制器支持梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)等多种编程语言。PLC代码安全主要包括两个方面:一是PLC代码自身存在的代码缺陷,比如空指针引用、数组下标越界、无效跳转、无限循环、冗余代码等代码缺陷,二是PLC代码违反安全需求,比如状态冲突、时序冲突、传感器阈值、控制量阈值等安全需求规约。
PLC代码缺陷的发现及安全规约违反验证主要采用模型检测的方法,此方法成为工业控制系统安全防护中最基本最有效的方法。目前研究中主要有三种模型检测工具,一种是基于SMV的模型检测工具,包含符号模型检测技术和二元决策图,分为NuSMV和CadenceSMV两种类型。另一种是基于时间自动机,其大部分来自于UPPAAL家族或Krono。第三种是SPIN`模型检查器。NuSMV是基于SMV的模型检测工具,广泛应用于可编程逻辑控制器缺陷代码的发现,但是NuSMV不能直接对PLC源程序进行处理,只能手工将源程序翻译为NuSMV输入模型,然后再进行模型检测,不仅浪费大量的人力,而且容易出错。而目前国内外关于PLC程序的研究主要是定义PLC程序指称语义的格局、程序语言的语义函数,但这些研究仅停留在简单对PLC程序语义的形式化定义上面。
发明内容
针对现有技术中存在的缺陷,本发明提供了一种PLC程序到NuSMV输入模型的自动化构建方法,大大提高NuSMV工具对PLC程序进行模型检测的效率和准确度,实现对工业控制系统PLC代码的安全性验证。
为了实现上述目的,本发明采用以下的技术方案:
一种PLC程序到NuSMV输入模型的自动化构建方法,包括以下步骤:
步骤1,对PLC的ST语言进行分析,构建ST语言的语法;
步骤2,根据步骤1给出的ST语法对ST程序进行处理,将ST程序解析为抽象语法树AST;
步骤3,对抽象语法树AST进行处理,分析ST语言语句的控制流特征,确定各语句生成控制流图CFG的算法;
步骤4,根据控制流图CFG对ST程序进行数据流分析,构建状态转换邻接表和变量取值变化邻接表;
步骤5,根据步骤4构建的状态转换邻接表和变量取值变化邻接表生成NuSMV输入模型。
进一步地,所述步骤1中,对PLC的ST语言进行分析的具体内容是:分析ST语言的架构、关键字、表达式、赋值、注释、操作符优先级、条件语句、循环语句以及跳转语句。
进一步地,所述步骤2的具体实现过程如下:
步骤201,创建若干个Eclipse项目,通过Eclipse向导:File->New->Project...->Xtext->Xtext project;
步骤202,选择项目名称、语言名称以及文件扩展名;
步骤203,输入ST语言的语法,执行代码生成器生成各种语言组建,在项目中选中文件GenerateDomainmodel.mwe2,点击右键Run As->MWE2Workow,将会触发Xtext语言生成器,生成解析器和序列化器。
进一步地,所述控制流图CFG的结构为:用二元结构CFG=(N,E)表示控制流图CFG,其中,N代表控制流图节点的集合,E代表控制流图弧的集合;
控制流图CFG采用基于十字链表的存储方式进行存储,节点表示的数据结构如下表:
Nnum Firstin Firstout
其中,Nnum表示节点的编号,Firstin指向以该节点为弧头的第一个弧节点,Firstout指向以该节点为弧尾的第一个弧节点;弧表示的数据结构如下表:
tailnum headnum Etype guard assignment Hlink Tlink
其中,tailnum表示弧尾的节点编号,headnum表示弧头的节点编号,Etype表示弧的类型,Etype={1,0},当Etype=1时,表示弧为分支弧,guard指向对应的条件谓词取值表达式,assignment为空,当Etype=0时,表示弧为顺序弧,guard为空,assignment指向对应的赋值语句链表,Hlink指向弧头相同的下一条弧,Tlink指向弧尾相同的下一条弧。
进一步地,所述步骤3中,确定各语句生成控制流图CFG的算法具体为:根据控制流图CFG的结构生成赋值语句、IF语句、CASE语句、FOR语句、WHILE语句以及REPEAT语句的控制流图;对于赋值语句直接添加到数据列表assignment中;对于IF语句,首先获得条件语句,并根据条件语句的真假创建两条分支弧,在遇到关键字END_IF时,这两条分支指向汇合节点;对于ST语言的CASE语句,表示多分支结构,首先根据CASE变量的N个不同的取值生成N条由CASE顶点到N个不同值节点的弧,然后在遇到关键字END_CASE时,这N条分支指向汇合节点;FOR语句、WHILE语句以及REPEAT语句,均是根据条件语句的真假分别生成两条分支弧,循环体对应生成一条弧,且该弧与条件为真的那条弧的两个节点相同,方向反向;
最后将生成的弧存储到数组列表ArrayList中。
进一步地,所述步骤4中,根据控制流图CFG对ST程序进行数据流分析,定义如下的数据结构来表示控制流图的状态迁移关系:
Guard State Next
其中,Guard表示状态迁移所需要满足的条件,State表示状态迁移的目标状态,Next指向下一个状态迁移,定义如下数据结构用于表示系统内变量的取值变化:
State Expr Next
其中,State表示变量被赋值前的状态,Expr表示系统内变量赋值语句右侧的数值或表达式,Next表示该变量下一个取值变化;
遍历步骤3生成的弧的数组列表ArrayList,参照上述两个数据结构,分别生成状态转换邻接表State_List以及变量取值变化邻接表Var_List。
进一步地,所述NuSMV输入模型包括状态集合部分、变量声明部分、状态转换部分和变量数据值变化部分;遍历状态转换邻接表生成状态集合部分和状态转换部分,遍历变量取值变化邻接表获得变量声明部分和变量数据值变化部分。
与现有技术相比,本发明具有以下优点:
1、本发明针对目前模型检测工具都拥有独特的输入模型,PLC程序不能作为直接输入,需要人工根据PLC程序构建模型检测器的输入,造成PLC程序的模型检测准确率和效率低的问题,对PLC程序进行解析,控制流分析、数据流分析,将PLC程序自动化构建为模型检测工具的输入模型,提高PLC程序的模型检测准确率以及效率。
附图说明
图1是本发明一种PLC程序到NuSMV输入模型的自动化构建方法的流程示意图;
图2是本发明一种PLC程序到NuSMV输入模型的自动化构建方法的框架图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述:
实施例一,如图1和图2所示,一种PLC程序到NuSMV输入模型的自动化构建方法,包括以下步骤:
步骤1,对PLC的ST语言进行分析,构建ST语言的语法;
根据IEC61131-3标准,对PLC的ST语言进行分析,分析ST语言的架构、关键字、表达式、赋值、注释、操作符优先级、条件语句、循环语句以及跳转语句等特征,编写对应的语法形式。
作为一种实施方式,以条件语句IF语句为例编写对应的语句语法如下:IF_Stmt→IF Condition THEN Statement{ELSE Statement}END_IF。
步骤2,根据步骤1给出的ST语法对ST程序进行处理,将ST程序解析为抽象语法树AST;
进一步地,利用Xtext特定的编程语言开源框架将ST程序解析为抽象语法树AST;具体实现过程如下:
步骤201,创建若干个Eclipse项目,通过Eclipse向导:File->New->Project...->Xtext->Xtext project;
步骤202,选择项目名称、语言名称以及文件扩展名;
步骤203,输入ST语言的语法,执行代码生成器生成各种语言组建,在项目中选中文件GenerateDomainmodel.mwe2,点击右键Run As->MWE2Workow,将会触发Xtext语言生成器,生成解析器和序列化器,以及一些其他基础结构代码,可以在控制台的日志消息中看到相应的过程。
步骤3,对抽象语法树AST进行处理,分析ST语言语句的控制流特征,确定各语句生成控制流图CFG的算法;
在本实施例中,用二元结构CFG=(N,E)表示控制流图CFG,其中,N代表控制流图节点的集合,E代表控制流图弧的集合;
控制流图CFG采用基于十字链表的存储方式进行存储,节点表示的数据结构如下表:
Nnum Firstin Firstout
其中,Nnum表示节点的编号,Firstin指向以该节点为弧头的第一个弧节点,Firstout指向以该节点为弧尾的第一个弧节点;弧表示的数据结构如下表:
tailnum headnum Etype guard assignment Hlink Tlink
其中,tailnum表示弧尾的节点编号,headnum表示弧头的节点编号,Etype表示弧的类型,Etype={1,0},当Etype=1时,表示弧为分支弧,guard指向对应的条件谓词取值表达式,assignment为空,当Etype=0时,表示弧为顺序弧,guard为空,assignment指向对应的赋值语句链表,Hlink指向弧头相同的下一条弧,Tlink指向弧尾相同的下一条弧。
根据控制流图CFG的结构生成赋值语句、IF语句、CASE语句、FOR语句、WHILE语句以及REPEAT语句的控制流图;
对于赋值语句直接添加到数据列表assignment中;对于IF语句,首先获得条件语句,并根据条件语句的真假创建两条分支弧,不管IF语句中有没有ELSE关键字,都会有两条对应于IF条件为真或为假的分支,并且最终在遇到关键字END_IF时,这两条分支指向汇合节点;对于ST语言的CASE语句,表示多分支结构,首先根据CASE变量的N个不同的取值生成N条由CASE顶点到N个不同值节点的弧,然后在遇到关键字END_CASE时,这N条分支指向汇合节点;FOR语句、WHILE语句以及REPEAT语句,均是根据条件语句的真假分别生成两条分支弧,循环体对应生成一条弧,且该弧与条件为真的那条弧的两个节点相同,方向反向;
最后将生成的弧存储到数组列表ArrayList中。
步骤4,根据控制流图CFG对ST程序进行数据流分析,构建状态转换邻接表和变量取值变化邻接表;
在本实施例中,根据控制流图CFG对ST程序进行数据流分析,定义如下的数据结构来表示控制流图的状态迁移关系:
Guard State Next
其中,Guard表示状态迁移所需要满足的条件,State表示状态迁移的目标状态,Next指向下一个状态迁移,定义如下数据结构用于表示系统内变量的取值变化:
State Expr Next
其中,State表示变量被赋值前的状态,Expr表示系统内变量赋值语句右侧的数值或表达式,Next表示该变量下一个取值变化;
遍历步骤3生成的弧的数组列表ArrayList,参照上述两个数据结构,分别生成状态转换邻接表State_List以及变量取值变化邻接表Var_List。
步骤5,根据步骤4构建的状态转换邻接表和变量取值变化邻接表生成NuSMV输入模型。
所述NuSMV输入模型包括状态集合部分、变量声明部分、状态转换部分和变量数据值变化部分;遍历状态转换邻接表生成状态集合部分和状态转换部分,遍历变量取值变化邻接表获得变量声明部分和变量数据值变化部分。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (6)

1.一种PLC程序到NuSMV输入模型的自动化构建方法,其特征在于,包括以下步骤:
步骤1,对PLC的ST语言进行分析,构建ST语言的语法;
步骤2,根据步骤1给出的ST语法对ST程序进行处理,将ST程序解析为抽象语法树AST;
步骤3,对抽象语法树AST进行处理,分析ST语言语句的控制流特征,确定各语句生成控制流图CFG的算法;所述控制流图CFG的结构为:用二元结构CFG=(N,E)表示控制流图CFG,其中,N代表控制流图节点的集合,E代表控制流图弧的集合;
控制流图CFG采用基于十字链表的存储方式进行存储,节点表示的数据结构如下表:
Nnum Firstin Firstout
其中,Nnum表示节点的编号,Firstin指向以该节点为弧头的第一个弧节点,Firstout指向以该节点为弧尾的第一个弧节点;弧表示的数据结构如下表:
tailnum headnum Etype guard assignment Hlink Tlink
其中,tailnum表示弧尾的节点编号,headnum表示弧头的节点编号,Etype表示弧的类型,Etype={1,0},当Etype=1时,表示弧为分支弧,guard指向对应的条件谓词取值表达式,assignment为空,当Etype=0时,表示弧为顺序弧,guard为空,assignment指向对应的赋值语句链表,Hlink指向弧头相同的下一条弧,Tlink指向弧尾相同的下一条弧;
步骤4,根据控制流图CFG对ST程序进行数据流分析,构建状态转换邻接表和变量取值变化邻接表;
步骤5,根据步骤4构建的状态转换邻接表和变量取值变化邻接表生成NuSMV输入模型。
2.根据权利要求1所述的PLC程序到NuSMV输入模型的自动化构建方法,其特征在于,所述步骤1中,对PLC的ST语言进行分析的具体内容是:分析ST语言的架构、关键字、表达式、赋值、注释、操作符优先级、条件语句、循环语句以及跳转语句。
3.根据权利要求1所述的PLC程序到NuSMV输入模型的自动化构建方法,其特征在于,所述步骤2的具体实现过程如下:
步骤201,创建若干个Eclipse项目,通过Eclipse向导:File->New->Project...->Xtext->Xtext project;
步骤202,选择项目名称、语言名称以及文件扩展名;
步骤203,输入ST语言的语法,执行代码生成器生成各种语言组建,在项目中选中文件GenerateDomainmodel.mwe2,点击右键Run As->MWE2 Workow,将会触发Xtext语言生成器,生成解析器和序列化器。
4.根据权利要求1所述的PLC程序到NuSMV输入模型的自动化构建方法,其特征在于,所述步骤3中,确定各语句生成控制流图CFG的算法具体为:根据控制流图CFG的结构生成赋值语句、IF语句、CASE语句、FOR语句、WHILE语句以及REPEAT语句的控制流图;对于赋值语句直接添加到数据列表assignment中;对于IF语句,首先获得条件语句,并根据条件语句的真假创建两条分支弧,在遇到关键字END_IF时,这两条分支指向汇合节点;对于ST语言的CASE语句,表示多分支结构,首先根据CASE变量的N个不同的取值生成N条由CASE顶点到N个不同值节点的弧,然后在遇到关键字END_CASE时,这N条分支指向汇合节点;FOR语句、WHILE语句以及REPEAT语句,均是根据条件语句的真假分别生成两条分支弧,循环体对应生成一条弧,且该弧与条件为真的那条弧的两个节点相同,方向反向;
最后将生成的弧存储到数组列表ArrayList中。
5.根据权利要求4所述的PLC程序到NuSMV输入模型的自动化构建方法,其特征在于,所述步骤4中,根据控制流图CFG对ST程序进行数据流分析,定义如下的数据结构来表示控制流图的状态迁移关系:
Guard State Next
其中,Guard表示状态迁移所需要满足的条件,State表示状态迁移的目标状态,Next指向下一个状态迁移,定义如下数据结构用于表示系统内变量的取值变化:
State′ Expr Next′
其中,State′表示变量被赋值前的状态,Expr表示系统内变量赋值语句右侧的数值或表达式,Next′表示该变量下一个取值变化;
遍历步骤3生成的弧的数组列表ArrayList,参照上述两个数据结构,分别生成状态转换邻接表State_List以及变量取值变化邻接表Var_List。
6.根据权利要求1或者5所述的PLC程序到NuSMV输入模型的自动化构建方法,其特征在于,所述NuSMV输入模型包括状态集合部分、变量声明部分、状态转换部分和变量数据值变化部分;遍历状态转换邻接表生成状态集合部分和状态转换部分,遍历变量取值变化邻接表获得变量声明部分和变量数据值变化部分。
CN201710382639.4A 2017-05-26 2017-05-26 PLC程序到NuSMV输入模型的自动化构建方法 Active CN107193745B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710382639.4A CN107193745B (zh) 2017-05-26 2017-05-26 PLC程序到NuSMV输入模型的自动化构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710382639.4A CN107193745B (zh) 2017-05-26 2017-05-26 PLC程序到NuSMV输入模型的自动化构建方法

Publications (2)

Publication Number Publication Date
CN107193745A CN107193745A (zh) 2017-09-22
CN107193745B true CN107193745B (zh) 2019-10-29

Family

ID=59875834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710382639.4A Active CN107193745B (zh) 2017-05-26 2017-05-26 PLC程序到NuSMV输入模型的自动化构建方法

Country Status (1)

Country Link
CN (1) CN107193745B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228455B (zh) * 2017-12-29 2020-06-23 北京航空航天大学 一种软件控制危险分析方法
CN108446218A (zh) * 2018-02-28 2018-08-24 华东师范大学 一种结构化文本程序的自动化验证装置
CN108446121A (zh) * 2018-02-28 2018-08-24 华东师范大学 一种结构化文本程序的自动化验证方法
CN108733410B (zh) * 2018-04-13 2021-10-01 南京南瑞继保电气有限公司 一种指令优化方法
CN108681445B (zh) * 2018-04-16 2020-07-24 华中科技大学 一种基于时间自动机的plc程序设计方法
CN109143953B (zh) * 2018-06-26 2020-04-24 华东师范大学 一种基于中间语言的plc程序验证方法
CN110515856B (zh) * 2019-09-02 2021-01-29 华东师范大学 一种基于动态符号执行的测试用例生成系统
CN110515857A (zh) * 2019-09-02 2019-11-29 华东师范大学 一种基于动态符号执行的测试用例生成方法
CN114327679A (zh) * 2021-12-29 2022-04-12 凌云光技术股份有限公司 一种流程图组件

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092747A (zh) * 2011-10-27 2013-05-08 西门子公司 一种控制程序的验证和测试方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092747A (zh) * 2011-10-27 2013-05-08 西门子公司 一种控制程序的验证和测试方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"An overview of model checking practices on verification of PLC software";Tolga Ovatman等;《Software and Systems Modeling》;20161031;第15卷(第4期);第937-960页 *
"Automated Generation of Formal Models from ST Control Programs for Verification Purposes";Borja Fernandez Adiego等;《CERN-ACC-NOTE-2014-0037》;20140610;摘要,第2节,第4-6节,图8 *

Also Published As

Publication number Publication date
CN107193745A (zh) 2017-09-22

Similar Documents

Publication Publication Date Title
CN107193745B (zh) PLC程序到NuSMV输入模型的自动化构建方法
CN103955426B (zh) 一种检测c代码空指针引用的方法及系统
Biallas et al. Arcade. PLC: A verification platform for programmable logic controllers
CN104077140B (zh) 用于持续集成的自动化编译方法和编译装置
CN105022691B (zh) 一种基于uml图的高度自动化软件测试方法
CN104820613B (zh) 一种异构多核程序的编译方法
CN102231134A (zh) 基于静态分析的冗余代码缺陷检测方法
US8806452B2 (en) Transformation of computer programs and eliminating errors
CN104503754A (zh) 一种机器人图形化编程系统中编程及编译的设计方法
CN101398758A (zh) 一种代码抄袭的检测方法
CN102609451A (zh) 面向流式数据处理的sql查询计划生成方法
CN102012991A (zh) 基于静态分析的c语言安全规则检查方法
CN111222141B (zh) 一种汽车电控单元代码漏洞分析方法和系统
CN107367686A (zh) 一种rtl硬件木马测试向量的生成方法
Le et al. Interactive program synthesis
CN103914379A (zh) 故障自动注入与故障检测的方法及其系统
CN109522005A (zh) 跨平台图形化程序设计方法
Cuomo et al. A novel approach based on formal methods for clone detection
CN112905232B (zh) 一种基于语法分析树的程序代码平行语料挖掘方法及系统
Rubin Parameterised verification of autonomous mobile-agents in static but unknown environments
CN103646194A (zh) 一种基于形式化验证的同步数据流程序的可信排序方法
CN117851101A (zh) 一种基于大语言模型的仓库级别代码缺陷自动修复的方法
CN102508691B (zh) 一种图形语言程序的有序分解方法及有序分解器
CN102681932A (zh) 一种检测软件异常输入处理正确性的方法
Sun et al. A hierarchical CPN model automatically generating method aiming at multithreading program algorithm error detection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant