【技术实现步骤摘要】
一种递归函数解析执行方法、装置及存储介质
[0001]本专利技术涉及一种递归函数解析执行方法、装置及存储介质,属于指令解释执行
技术介绍
[0002]IEC61131
‑
3标准定义的ST结构化文本语言,采用高度压缩的方式提供大量抽象语句来描述复制控制系统的功能,特别为工业控制应用而开发,但该语言不支持递归函数调用,无法满足一些复杂算法的实现需求。在过程控制领域为了满足在线无扰更新的要求,通常采用解析执行的方法,需要支持递归函数的解析执行。
技术实现思路
[0003]本专利技术的目的在于克服现有技术中的不足,提供一种递归函数解析执行方法、装置及存储介质,支持递归函数调用执行,满足复杂算法应用开需求。
[0004]为达到上述目的,本专利技术是采用下述技术方案实现的:
[0005]第一方面,本专利技术提供了一种递归函数解析执行方法,包括:
[0006]定义用于函数解析的指令集,所述指令集包括递归函数指令集和非递归函数指令集;
[0007]识别ST结构化文本 ...
【技术保护点】
【技术特征摘要】
1.一种递归函数解析执行方法,其特征在于,包括:定义用于函数解析的指令集,所述指令集包括递归函数指令集和非递归函数指令集;识别ST结构化文本语言中的递归函数和非递归函数,并基于递归函数和非递归函数编译输出解释型指令序列;通过解析器解析解释型指令序列获取函数指令序列,所述函数指令序列包括递归函数指令和非递归函数指令;按照函数指令序列的顺序执行递归函数指令和非递归函数指令;其中,在执行递归函数指令时,基于递归函数指令的数据帧建立帧栈型数据结构的调用栈;基于调用栈的顺序依次从所述递归函数指令集中调用递归函数指令的处理函数进行执行,直至调用栈为空。2.根据权利要求1所述的一种递归函数解析执行方法,其特征在于,所述指令集为自定义虚拟机指令集,所述非递归函数指令集包括内存操作指令、算术运算指令、逻辑运算指令、位操作指令、比较操作指令、流程控制指令和非递归函数调用指令;所述递归函数指令集包括新建数据帧指令、删除数据帧指令、数据压栈指令、数据出栈指令、形参传递赋值指令和递归函数调用指令。3.根据权利要求1所述的一种递归函数解析执行方法,其特征在于,所述识别ST结构化文本语言中的递归函数和非递归函数包括:对ST结构化文本语言进行词法分析、语法分析和语义分析,生成函数语义树;基于函数语义树按深度优先次序遍历其子节点,将存在子节点回溯返回到函数语义树的首节点标记为递归函数,将不存在子节点回溯返回到函数语义树的首节点标记为非递归函数。4.根据权利要求1所述的一种递归函数解析执行方法,其特征在于,所述编译输出解释型指令序列包括:在分配数据区的显式声明的变量区F.data增加1个输出变量,用于记录递归函数的返回值ret;在序言部分增加形参传递的指令,将递归函数和非递归函数的初始源数据区复制到本地数据区;对本地数据区中数据进行编译依次输出非递归函数语句指令或递归函数调用指令,并生成解释型指令序列;其中,在编译过程中...
【专利技术属性】
技术研发人员:陈宏君,李响,张磊,文继锋,曾凯,洪礼鑫,叶立文,刘坤,
申请(专利权)人:南京南瑞继保工程技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。