CN117908891A - 一种面向机器人流程自动化的自下而上的翻译方法 - Google Patents
一种面向机器人流程自动化的自下而上的翻译方法 Download PDFInfo
- Publication number
- CN117908891A CN117908891A CN202410302143.1A CN202410302143A CN117908891A CN 117908891 A CN117908891 A CN 117908891A CN 202410302143 A CN202410302143 A CN 202410302143A CN 117908891 A CN117908891 A CN 117908891A
- Authority
- CN
- China
- Prior art keywords
- statement
- translation
- sentence
- grammar
- translating
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013519 translation Methods 0.000 title claims abstract description 40
- 230000014509 gene expression Effects 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims abstract description 13
- 238000004458 analytical method Methods 0.000 claims abstract description 4
- 230000009471 action Effects 0.000 claims description 4
- 238000013515 script Methods 0.000 abstract description 3
- 230000014616 translation Effects 0.000 description 27
- 238000004519 manufacturing process Methods 0.000 description 15
- 230000000694 effects Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及软件机器人领域,特别涉及一种面向机器人流程自动化的自下而上的翻译方法。该方法包含以下步骤:(1)对声明语句进行翻译,将声明变量的名称、数据类型填入符号表;(2)对赋值语句进行翻译,依据语法规则对算术表达式、数组赋值;(3)控制语句的翻译,针对if和while两种语句进行翻译;(4)过程调用语句的翻译,自下而上的分析过程中调用各种参数。本发明能够自下而上的对用户编写的脚本进行解释执行,并支持用户使用分支和循环结构,使其对流程的控制更加灵活。
Description
技术领域
本发明涉及软件机器人领域,特别涉及一种面向机器人流程自动化的自下而上的翻译方法。
背景技术
机器人流程自动化 (RPA),又称为软件机器人,是一种使用智能自动化技术模拟人类后台任务的工具。它可以在各个不相关的软件系统中自动执行企业与生产力应用之间的重复性任务。具体来说,RPA结合了API和用户界面(UI)互动,整合并执行诸如数据提取、表单填写、文件移动等后台任务。通过部署用于模拟人工流程的脚本,RPA工具可以在不同的软件系统中自动执行各项活动和事务。这种形式的自动化使用基于规则的软件,从而将人力资源解放出来,让人们优先从事更复杂的任务。RPA有助于加速数字化转型工作,并提高投资回报率(ROI)。
目前国内的RPA产品如UiBot等,采用的是流程图的形式编排流程,各种条件判断语句是通过流程块的拖拽完成的。由于缺少解释器的参与,不使用翻译方法,国内RPA产品在流程编排的灵活性上受到很大的限制。国外的RPA产品如UiPath等,具备自己的解释器,但其翻译方法采用的自上而下的方式。尽管这种方式在实现上较为简单,但是其可能导致大量的回溯操作,导致系统的效率降低。此外,该方法在应用范围上也有限制,如无法处理一些表达式二义文法。
发明内容
本发明的目的是为RPA软件提供一种自下而上的语法翻译方法,通过该翻译方法,RPA软件能够灵活的完成各种流程控制,对于各种条件分支,函数定义,过程调用等操作,该翻译方式能够高效准确的实现这些功能。
为了实现上述目的,本发明采用的技术方案是:一种面向机器人流程自动化的自下而上的语法翻译方法,包含以下步骤:
(1)对声明语句进行翻译,将声明变量的名称、数据类型填入符号表;
(2)对赋值语句进行翻译,依据语法规则对算术表达式、数组赋值;
(3)控制语句的翻译,针对if和while两种语句进行翻译;
(4)过程调用语句的翻译,自下而上的分析过程中调用各种参数。
优选地,所述步骤(1)中,对声明语句进行翻译,是对变量、数组、函数、结构体的声明,采用自下而上的方式对RPA中所需要进行的各种声明进行翻译。
优选地,所述步骤(2)中,对赋值语句进行翻译,是对算术表达式和数组的赋值操作,采用自下而上的方式对RPA中所需要进行的各种赋值操作进行翻译。
优选地,所述步骤(3)中,对控制语句进行翻译,是对if语句和while语句采用自下而上的方式完成翻译动作;根据控制语句中控制条件的真假,程序选择转移到真出口链或者假出口链执行。
优选地,所述步骤(4)中,将过程调用语句与算术表达式归约,生成独立语句,进行自下而上的翻译。
本发明具有的有益效果是:本发明能够自下而上的对用户编写的脚本进行解释执行,并支持用户使用分支和循环结构,使其对流程的控制更加灵活,避免了回溯问题,提高了系统的运行效率,而且适用于更多的场景。
附图说明
图1为本发明实施例中提供的面向机器人流程自动化的自下而上的翻译方法的流程示意图。
具体实施方式
面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明提供了一种面向机器人流程自动化的自下而上的语法翻译方法,如图1所示,该方法通过自下而上的对RPA产品所编排的流程进行分析与翻译,能够允许各种分支和循环语句,极大的增强了流程编排的灵活性,提高了流程执行的效率。具体包含以下步骤:
(1)声明语句翻译
对声明语句进行翻译,主要涉及变量、数组、函数、结构体等的声明,采用自下而上的方式对RPA中所需要进行的各种声明变量进行翻译。其整体翻译模式的产生式如表1所示,表1中表示空,/>表示变量名,/>为整数,/>、/>、/>、/>、/>为数据类型。
(1.1)产生式1表示整个程序分析完成,产生式2是一个空符产生式,其左部符号在产生式1的最左边,因此程序开始分析即触发其动作。
(1.2)产生式3、4构造了一个由多个连续的构成的序列。后续的产生式5,13,28使得可以为变量定义、函数定义、结构体定义,因此这些产生式是全局变量声明、函数定义、结构体定义的构造。
(1.3)产生式5-7是多变量声明的组合。其中产生式6,7构造了一个由多个构成的序列,而是一个变量声明语句,因此这些产生式是多个变量的连续声明。产生式5使得可以为变量声明。
(1.4)产生式8-11是对函数(一些定制好的流程,由多个子功能,如浏览器、鼠标的操作组成)的定义。产生式8定义了函数内语句由是由括起来的。产生式9-10定义了是由一系列的连接而成。产生式11中定义了是一个声明语句。
(1.5)产生式12-14是函数的定义部分。产生式12定义函数的开始部分,产生式13为函数定义的结束。产生式15-17是声明语句的定义,产生式15识别出声明语句最左侧第一个变量,产生式16识别出声明语句的后续一个变量。
(1.6)产生式18-23是各种数据类型的归约.如整型、浮点型、指针等,实现文法符号的属性初始化。产生式24-26是数组的定义过程,产生式24识别出数组的下标,产生式25识别出数组的下一个维度,产生式26为数组识别的结束,以结尾。
(1.7)产生式27-29是结构体的定义部分。产生式27识别出关键字struct ,是结构体的定义开始。产生式28为结构体识别的完成。产生式29为声明一个结构体类型的变量。
表1 自下而上翻译中声明语句的产生式
。
(2)赋值语句翻译
对赋值语句进行翻译,主要涉及算术表达式和数组的赋值操作,采用自下而上的方式对RPA中所需要进行的各种赋值操作进行翻译。其整体翻译模式的产生式如表2所示,表2中表示空,/>表示变量名,/>为整数。
(2.1)产生式1中符号表示赋值语句。产生式2是对一个表达式的赋值,将一个表达式的值/>赋给/>,产生式3是对数组的赋值,将赋值运算符左边换成了/>。
(2.2)产生式4-7是四则运算表达式,分别进行相应的运算。产生式8为一元负操作,产生式9是括号运算,只需传递值即可。
(2.3)产生式10和11分别为变量与常量的归约。产生式12中在右边,归约为/>,是数组的赋值操作,产生13,14分别是数组中变量与常量的赋值。
(2.4)产生式15为数组名字和第1维度的识别,产生式16进行后续维度的识别,产生式17表示数组识别完成。
表2 自下而上翻译中赋值语句的产生式
。
(3)控制语句翻译
对控制语句进行翻译,主要涉及if和while这两种语句,采用自下而上的方式完成翻译动作,极大的增强了机器人流程自动化中流程编排的便捷性。控制语句中判断控制条件的真假至关重要,根据条件的真假,程序选择转移到真出口链或者假出口链执行。其整体翻译模式的产生式如表3所示,表3中表示空。
(3.1)在产生式1中,为假时才需要判断/>的真假,因此/>的第1条四元式就是/>的假出口地址。/>和/>都为真时出口地址相同,但目前还不能确定出口地址。/>为假时,/>一定为假,否则不会进入/>判断。目前/>的假出口已知,/>的假出口未知。在产生式2中,/>为真时才需要判断/>的真假,因此/>的第1条四元式就是/>的真出口地址。/>和/>都为假时出口地址相同,但目前还不能确定出口地址。/>为真时,/>一定为真,否则不会进入/>判断。目前/>的真出口已经知道,/>的真出口未知。
(3.2)产生式4表示非操作,只需将左部和右部符号的真、假出口对调即可。产生式5为括号操作,真假出口保持不变。产生式6为两个表达式比较,为关系运算符,根据运算的结果选择后续的执行位置。产生式7是一个单独的布尔表达式,此时生成两个出口,分别时真出口、假出口。
(3.3)产生式8为if-then-else语句,为真则执行/>,/>为假则执行/>,/>、/>、/>的下一条语句都是/>的下一条语句。产生式9用于在产生式8中的/>、/>之间产生跳过/>的无条件跳转语句。
(3.4)产生式10是if-then语句,为真执行/>,/>为假则执行/>的下一条语句。产生式11是while语句,/>执行完后应返回执行条件/>的测试。/>为真执行/>,/>为假跳出循环,也就是跳转到整个while语句之后。
表3 自下而上翻译中控制语句的产生式
。
(4)过程调用语句翻译
对过程调用语句进行翻译,过程调用既可以作为一个单独的语句,也可以作为表达式的一部分。为了统一,将过程调用先归约为符号E,再增加一个的产生式,以覆盖这两种情况。产生式/>还有一个作用,它使不赋值的表达式,如“/>”也成为一个合法语句。这里采用自下而上的方式对过程调用语句进行翻译,赋予了RPA系统封装调用大量功能的能力。其整体翻译模式的产生式如表4所示,表4中/>表示空,/>表示一个变量名。
(4.1)产生式1是表达式和过程调用可以独立成为一个句子。产生式2是有形参的过程调用,产生式3是无形参的过程调用。
(4.2)产生式4是对形参的识别,向左识别出一个形参,生成相应的四元式。产生式5是识别出最后一个参数,直接生成参数四元式。
表4 自下而上翻译中过程调用语句的产生式
。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种面向机器人流程自动化的自下而上的语法翻译方法,其特征在于,包含以下步骤:
(1)对声明语句进行翻译,将声明变量的名称、数据类型填入符号表;
(2)对赋值语句进行翻译,依据语法规则对算术表达式、数组赋值;
(3)控制语句的翻译,针对if和while两种语句进行翻译;
(4)过程调用语句的翻译,自下而上的分析过程中调用各种参数。
2.根据权利要求1所述的面向机器人流程自动化的自下而上的语法翻译方法,其特征在于,所述步骤(1)中,对声明语句进行翻译,是对变量、数组、函数、结构体的声明,采用自下而上的方式对RPA中所需要进行的各种声明进行翻译。
3.根据权利要求1所述的面向机器人流程自动化的自下而上的语法翻译方法,其特征在于,所述步骤(2)中,对赋值语句进行翻译,是对算术表达式和数组的赋值操作,采用自下而上的方式对RPA中所需要进行的各种赋值操作进行翻译。
4.根据权利要求1所述的面向机器人流程自动化的自下而上的语法翻译方法,其特征在于,所述步骤(3)中,对控制语句进行翻译,是对if语句和while语句采用自下而上的方式完成翻译动作;根据控制语句中控制条件的真假,程序选择转移到真出口链或者假出口链执行。
5.根据权利要求1所述的面向机器人流程自动化的自下而上的语法翻译方法,其特征在于,所述步骤(4)中,将过程调用语句与算术表达式归约,生成独立语句,进行自下而上的翻译。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410302143.1A CN117908891A (zh) | 2024-03-18 | 2024-03-18 | 一种面向机器人流程自动化的自下而上的翻译方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410302143.1A CN117908891A (zh) | 2024-03-18 | 2024-03-18 | 一种面向机器人流程自动化的自下而上的翻译方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117908891A true CN117908891A (zh) | 2024-04-19 |
Family
ID=90692740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410302143.1A Pending CN117908891A (zh) | 2024-03-18 | 2024-03-18 | 一种面向机器人流程自动化的自下而上的翻译方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117908891A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120151437A1 (en) * | 2010-12-09 | 2012-06-14 | Bull Hn Information Systems Inc. | Method for translating a cobol source program into readable and maintainable program code in an object oriented second programming language |
CN104503816A (zh) * | 2014-12-30 | 2015-04-08 | 西安电子科技大学 | 一种硬件语言vhdl到msvl的自动转换系统 |
US9684496B1 (en) * | 2016-03-25 | 2017-06-20 | Norman L. Reid | Method for parsing programming languages and structured data |
CN115344248A (zh) * | 2022-08-18 | 2022-11-15 | 杭州分叉智能科技有限公司 | 一种rpa开发字段编辑多样化方法 |
CN115794101A (zh) * | 2022-10-19 | 2023-03-14 | 青岛海信信息科技股份有限公司 | 一种基于递归下降分析器的机器人流程自动化系统 |
CN115858049A (zh) * | 2023-03-04 | 2023-03-28 | 北京神州光大科技有限公司 | Rpa流程组件化编排方法、装置、设备和介质 |
CN117453437A (zh) * | 2023-11-21 | 2024-01-26 | 中国工商银行股份有限公司 | 数据库语句处理方法、装置、计算机设备和存储介质 |
CN117608652A (zh) * | 2023-11-20 | 2024-02-27 | 合肥工业大学 | 一种基于高级抽象语法树的sql语句翻译方法 |
-
2024
- 2024-03-18 CN CN202410302143.1A patent/CN117908891A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120151437A1 (en) * | 2010-12-09 | 2012-06-14 | Bull Hn Information Systems Inc. | Method for translating a cobol source program into readable and maintainable program code in an object oriented second programming language |
CN104503816A (zh) * | 2014-12-30 | 2015-04-08 | 西安电子科技大学 | 一种硬件语言vhdl到msvl的自动转换系统 |
US9684496B1 (en) * | 2016-03-25 | 2017-06-20 | Norman L. Reid | Method for parsing programming languages and structured data |
CN115344248A (zh) * | 2022-08-18 | 2022-11-15 | 杭州分叉智能科技有限公司 | 一种rpa开发字段编辑多样化方法 |
CN115794101A (zh) * | 2022-10-19 | 2023-03-14 | 青岛海信信息科技股份有限公司 | 一种基于递归下降分析器的机器人流程自动化系统 |
CN115858049A (zh) * | 2023-03-04 | 2023-03-28 | 北京神州光大科技有限公司 | Rpa流程组件化编排方法、装置、设备和介质 |
CN117608652A (zh) * | 2023-11-20 | 2024-02-27 | 合肥工业大学 | 一种基于高级抽象语法树的sql语句翻译方法 |
CN117453437A (zh) * | 2023-11-21 | 2024-01-26 | 中国工商银行股份有限公司 | 数据库语句处理方法、装置、计算机设备和存储介质 |
Non-Patent Citations (7)
Title |
---|
KAI LIU 等: "Application of Robotic Process Automation Combined with Chinese Grammatical Error Detection", 《ACM》, 30 January 2023 (2023-01-30) * |
刘茂福主编: "《编译原理》", 30 November 2020, 武汉大学出版社, pages: 154 - 155 * |
吴清平, 刘明业: "VHDL-C++翻译器设计与实现", 软件学报, no. 11, 23 November 2002 (2002-11-23) * |
张仕仁主编: "《串行编译与并行编译》", 31 January 2022, 吉林大学出版社, pages: 170 - 195 * |
张守志: "《编译技术学习辅导》", vol. 1, 1 January 2004, 高等教育出版社, pages: 147 - 165 * |
程振伟;徐家福;: "量子程序设计语言NDQJava2处理系统――词法分析程序及语法分析程序", 计算机科学与探索, no. 06, 2 April 2013 (2013-04-02) * |
马捷等编著: "《计算机专业研究生入学考试全真题解 3 操作系统与编译原理分册》", 31 August 2000, 人民邮电出版社, pages: 166 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7975233B2 (en) | Automatic conversion of a textual language into a graphical program representation | |
US10235265B2 (en) | Sequentially constructive model of computation | |
US11409504B1 (en) | Variant modeling elements in graphical programs | |
US8667407B1 (en) | Graphical model preparation for embedded deployment | |
CN103077064B (zh) | 一种解析并执行程序语言方法及解释装置 | |
US7949995B2 (en) | Visual programming method | |
CN110149800A (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
EP1745370A2 (en) | Graphical data flow programming environment with first model of computation that includes a structure supporting second model of computation | |
JPH11513512A (ja) | ディジタル信号プロセッサの製造方法 | |
CN111309292B (zh) | 一种基于MATLAB/Simulink的全模型可执行程序构建方法 | |
CN110196720A (zh) | 一种Simulink生成动态链接库的优化方法 | |
CN117908891A (zh) | 一种面向机器人流程自动化的自下而上的翻译方法 | |
CN117215661A (zh) | 一种事件处理的方法、装置以及存储介质 | |
Märtin et al. | Patterns and models for automated user interface construction–in search of the missing links | |
JPH04205423A (ja) | プログラム作成装置 | |
CN113392436B (zh) | 一种cae分析软件和办公软件集成化控制方法及平台 | |
CN114564195A (zh) | 一种基于b/s架构的云cad平台的二次开发方法 | |
CN114489582A (zh) | 一种可控定制化的后端开发系统及方法 | |
CN106155668A (zh) | 一种宏语言的图形化表达方法 | |
Chang et al. | Support NNEF execution model for NNAPI | |
Dai et al. | Automatic test data generation for TTCN-3 using CTE | |
McDonald et al. | Denotational semantics of a command interpreter and their implementation in Standard ML | |
Wiriyakul et al. | A visual editor for language-independent scripting for BPMN modeling | |
Ramon et al. | The Guizmo Framework for Generating Final User Interfaces from Wireframes | |
Jeffery | Build Your Own Programming Language: A programmer's guide to designing compilers, interpreters, and DSLs for solving modern computing problems |
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 |