CN110032363A - 一种用于机器人编程的数据结构构造方法及系统 - Google Patents
一种用于机器人编程的数据结构构造方法及系统 Download PDFInfo
- Publication number
- CN110032363A CN110032363A CN201910218634.7A CN201910218634A CN110032363A CN 110032363 A CN110032363 A CN 110032363A CN 201910218634 A CN201910218634 A CN 201910218634A CN 110032363 A CN110032363 A CN 110032363A
- Authority
- CN
- China
- Prior art keywords
- structural body
- syntax tree
- data structure
- type
- expression
- 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.)
- Granted
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种用于机器人编程的数据结构构造方法及系统,方法包括:获取由原始代码生成的原始抽象语法树;读取原始抽象语法树中的结构体,判断结构体是否为数组,若是,则循环遍历数组的所有结构体,若否,则读取结构体,获取结构体类型;根据结构体的类型获取对应的表达式类型,根据结构体及对应表达式生成目标语法树,从而完成新的数据结构构造。本发明中通过对原始代码对应的语法树进行二次封装,清洗部分无用数据,使数据结构简洁,降低了机器人编程的实现难度,缩减了机器人编程的时间。
Description
技术领域
本发明涉及机器人技术领域,尤其涉及一种用于机器人编程的数据结构构造方法及系统。
背景技术
机器人编程时,尤其Web开发中,抽象语法树的应用十分广泛。由于它按照一定的规则,比如MDN(Mozilla Developer Network,Mozilla开发者网)规范来解析,其中我们通常可以为动态类型语言添加运行时改变的能力,这就需要我们完全解析某种语言并改变其表现,而抽象语法树可以辅助我们做到这一点。
以JavaScript为例,由于是动态类型语言没有编译器,我们通常无法改变其运行时的表现,但如若引入抽象语法树,我们可以得知即将运行的代码结构,可以获取某个函数的引用并对其进行修改,这也是Ugly-js提供的解析器的常用用途之一。
但是抽象语法树之所以称之为抽象,是因为生成的AST(Abstract Syntax Tree,抽象语法树)数据对象一来并没有太多的源代码信息,二来数据层级比较深,一般100行JavaScript可生成的语法树就比较复杂了,这也导致大量有用数据被埋藏,所以又需要清洗数据。从而使机器人编程时在实现特定数据结构生成器的时候遇到了很多困难,对生成的语法表达式类型掌握不全,对各种表达式和token的展现形式没有做详尽的调查和准备文档导致解析错误、生成器崩溃,为机器人编程带来不便。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种用于机器人编程的数据结构构造方法及系统,旨在解决现有技术中机器人在编程时使用现有的数据结构,容易出现解析错误、生成器崩溃的缺陷。
本发明的技术方案如下:
一种用于机器人编程的数据结构构造方法,所述方法包括:
获取由原始代码生成的原始抽象语法树;
读取原始抽象语法树中的结构体,判断结构体是否为数组,若是,则循环遍历数组的所有结构体,若否,则读取结构体,获取结构体类型;
根据结构体的类型获取对应的表达式类型,根据结构体及对应表达式生成目标语法树,从而完成新的数据结构构造。
可选地,所述原始抽象语法树的对象包含的信息包括类型、名字、调用者、属性和位置。
可选地,所述结构类型包括变量赋值语句结构体、函数定义结构体、if条件语句结构体、while循环语句结构体、语句表达式结构体、for…in循环语句结构体、break结构体、continue结构体、return语句结构体和代码块结构体。
可选地,所述表达式类型包括函数调用表达式、一元表达式、二元表达式、变量、未包装类型的数据表达式、赋值表达式以及数据调用或读取表达式。
可选地,所述根据结构体的类型获取对应的表达式类型,根据结构体及对应表达式生成目标语法树,包括:
根据结构体对象的类型来获取对应的表达式类型,根据表达式类型获取映射关系;
根据对应的映射关系及结构体生成目标语法树。
可选地,所述根据结构体的类型获取对应的表达式类型,根据结构体及对应表达式生成目标语法树,包括:
根据结构体对象的类型来获取对应的表达式类型,根据表达式类型获取映射关系;
根据对应的映射关系及结构体生成目标语法树。
可选地,所述获取结构体的层级,根据结构体的层级将目标语法树中的数据结构,按照同级或子级的顺序结合在一起根据结构体的类型获取对应的表达式类型,根据结构体及对应表达式生成目标语法树,包括:
根据结构体对象的类型来获取对应的表达式类型,根据表达式类型获取映射关系;
根据对应的映射关系及结构体生成目标语法树。
可选地,所述原始抽象语法树为符合预设规范的语法树。
本发明另一实施例还提供了一种系统,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的用于机器人编程的数据结构构造方法。
本发明的又一实施例还提供了一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的用于机器人编程的数据结构构造方法。
有益效果:本发明公开了一种用于机器人编程的数据结构构造方法及系统,通过对原始代码对应的语法树进行二次封装,清洗部分无用数据,使数据结构简洁,降低了机器人编程的实现难度,缩减了机器人编程的时间,提高了机器人编程效率增益。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明一种用于机器人编程的数据结构构造方法较佳实施例的流程图。
图2为本发明一种用于机器人编程的数据结构构造系统的较佳实施例的硬件结构图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
由于现有的原始抽象语法树的数据层级深,表达式多种多样表现各异,机器人编程难度大。而本发明实施例主要是按照与原始抽象语法树同样的规范对抽象语法树进行再一次的抽象和解析,并清洗出我们需要的数据,甚至加以二次封装与修改。该技术的显要特征是它的处理对象并不是某种语言的源代码,它是一种二次封装工具,可接收数据只能是符合预设规范的抽象语法树对象。本发明实施例中抽象出的简洁的数据结构依然可用于动态修改代码功能、语法数据采集、语言功能互转等功能,但实现难度和时间被降低和缩减了很多,从而为机器人编程带来了方便。
请参阅图1,图1为本发明一种用于机器人编程的数据结构构造方法较佳实施例的流程图。如图1所示,其包括步骤:
步骤S100、获取由原始代码生成的原始抽象语法树;
步骤S200、读取原始抽象语法树中的结构体,判断结构体是否为数组,若是,则执行步骤S300,若否,则执行步骤S400;
步骤S300、循环遍历数组的所有结构体;
步骤S400、读取结构体,获取结构体类型;
步骤S500、根据结构体的类型获取对应的表达式类型,根据结构体及对应表达式生成目标语法树,从而完成新的数据结构构造。
具体实施时,原始抽象语法树为符合预设规范的语法树。目标语法树与原始抽象语法树为符合相同规范的语法树。例如,本实施例中原始抽象语法树采用满足MDN规范,则经过处理后的目标语法树也是满足MDN规范。
原始抽象语法树的对象包含的信息包括类型、名字、调用者、属性和位置。具体地,序开始时,我们得到的是最原始的一份抽象语法树信息,这样符合MDN parse API规范的语法树对象一般包含类型、名字、调用者、属性、位置等大量信息,很多我们用不到所以需要进行清洗。MDN parse API规范是指满足MDN规范下的应用程序编程接口规范。
入手点是树的结构一般由body来进行分割。body是抽象语法树的最上层结构体,一个body结构体就是一段代码,一般一段代码只有一个body,不过如果是循环体、类或函数声明等其内部一般会有多个body。
获取body之后,我们会对其类型的不同进行分别的处理,有调用表达式、一元二元表达式、循环结构、Return结构等等。这部分我们按照各种类型的不同会按照各自的规则来生成一个目标树对象。这部分就是提取并精炼过的简洁数据结构了。各自的规则的需要预先进行设置。
可选地,步骤S500具体为:
根据结构体对象的类型来获取对应的表达式类型,根据表达式类型获取映射关系;
根据对应的映射关系及结构体生成目标语法树。
具体地,结构类型包括变量赋值语句结构体、函数定义结构体、if条件语句结构体、while循环语句结构体、语句表达式结构体、for…in循环语句结构体、break结构体、continue结构体、return语句结构体和代码块结构体。
具体地,首先原语法树一般会带有body属性,这代表着原代码体的所有结构。如果代码中存在多个作用域,那么就会有多个body,因为这是一种嵌套关系,我们在处理时利用递归函数可以很容易的解决。之后是对body的属性进行不同的处理。原类型基本有以下几种,我们分别进行说明:VariableDeclaration,指的是一段变量赋值语句。FunctionDeclaration,指的是一段函数定义。IfStatement,指的是一段if条件语句结构体。WhileStatement,指的是一段while循环语句结构体。ExpressionStatement,这是最泛用的语句表达式。ForInStatement,指的是一段for..in循环语句结构体。BreakStatement,指的是一段break结构体。ContinueStatement,指的是一段continue结构体。ReturnStatement,指的是一段return结构体。BlockStatement,各种结构体所包含的代码块结构。
其中,表达式类型包括函数调用表达式、一元表达式、二元表达式、变量、未包装类型的数据表达式、赋值表达式以及数据调用或读取表达式。
具体实施时,对应上述body类型,表达式类型包括:CallExpression,一般是指函数的调用等;UnaryExpression,一般是指一元表达式;BinaryExpression,一般是指二元表达式;Indentifier,一般用来指代一个变量;NewExpression,它用来指代并未给予包装类型的某种数据,比如写成表达式的元组、列表或字典等。AssignmentExpression,一般是指赋值表达式。MemberExpression,一般是指用‘.’来进行调用或者读取数据的表达式。
还有一些特殊情况下出现的表达是类型,不再一一列举。我们针对各自的代码结构体、遍历语法树通过每一层的类型,再调用各自的表达式类型进行解析。比如MemberExpression表达式用的是比较多的,它有一个object属性表示调用者,还有property类型属性,里面一般包含着args等表示传入的参数等。我们根据这些数据,递归读取object,args,property/callee的name来进行新数据结构构建。callee属性是arguments对象的一个成员,该属性仅当相关函数正在执行时才可用。callee属性的初始值是正被执行的Function对象。这将允许匿名函数成为递归的函数。
可选地,根据对应的映射关系及结构体生成目标语法树还包括:
获取结构体的层级,根据结构体的层级将目标语法树中的数据结构,按照同级或子级的顺序结合在一起。
具体实施时,我们会按照body的层级将这些数据结构按照同级或子级的顺序结合在一起,保证其与原语法树的数据层级一致。
我们会按照body的层级将这些数据结构按照同级或子级的顺序结合在一起,保证其与原语法树的数据层级一致。为了具体说明body层级和其子级的联系,我们用一段Python程序以及其解析语法树来说明。其中Python程序为一种脚本编程语言。以下是一段函数定义以及调用结果并输出的程序:
我们首先利用相关规范将其转化为原始抽象语法树,得到我们前文所提到的语法结构体对象,也就是body。根据这段程序的构造,最上层body应该还有三段子body,即函数定义(第1、2行)、变量赋值(第3行)以及函数调用(第4行)。具体地,body结构中body会具有一个“type”属性,根据语句的不同来标注不同的结构名。函数声明FunctionDeclaration,变量赋值VariableDeclaration以及函数调用ExpressionStatment(指示一段表达式),CallExpression(函数调用)。
进一步的实施例中,获取结构体的层级,根据结构体的层级将目标语法树中的数据结构,按照同级或子级的顺序结合在一起根据结构体的层级将目标语法树中的数据结构,按照同级或子级的顺序结合在一起后,包括:
当检测到有新数据生成时,在程序中返回目标语法树,将目标语法树和结构体中的下一个结构体对象传入原始抽象语法树进行递归,递归时将新数据插入至目标语法树对应位置,完成对原始抽象语法树的重建。
具体地,当一段嵌套结构(函数、条件判断、循环判断等)出现时,body下还会有body,这就需要我们根据不同的类型来递归处理,并拼接这些语法树对象。因此在生成目标语法树的过程中,当检测生成一部分新数据之后,会将这些数据传入原函数进行递归,那么递归中的函数会把数据插入到我们的数据之中,保证了数据的顺序和层级是正确的。经过这样的处理,我们就完成了对原语法树的重新构建。
由以上方法实施例可知,本发明用于机器人编程的数据结构构造方法,对于机器人的Web开发编程中的特定情景中的多编程语言间切换和解析,以及互相解释和运行的场景,基于某类语言的抽象语法树,形成基于另外一种语法的更加简洁的数据结构。也可以用来在运行时动态解析代码的结构,获取某些重要的参数等,在特定的场合下会提供可靠的帮助。由于原始抽象语法树的构造严格遵循MDN规范,我们的方法也会针对其特点来生成数据,当前主要应用领域在机器人的Web开发编程,有助于减少编程时间,提高机器人编程的效率。
本发明另一实施例提供一种用于机器人编程的数据结构构造系统,如图2所示,该用于机器人编程的数据结构构造系统10包括:
一个或多个处理器110以及存储器120,图2中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图2中以通过总线连接为例。
处理器110用于完成用于机器人编程的数据结构构造系统10的各种控制逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的用于机器人编程的数据结构构造方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行用于机器人编程的数据结构构造系统10的各种功能应用以及数据处理,即实现上述方法实施例中的用于机器人编程的数据结构构造方法。
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于机器人编程的数据结构构造系统10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至用于机器人编程的数据结构构造系统10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的用于机器人编程的数据结构构造方法,例如,执行以上描述的图1中的方法步骤S100至步骤S500。
上述用于机器人编程的数据结构构造系统10可执行本发明实施例所提供的用于机器人编程的数据结构构造方法,具备执行方法相应的功能模块和有益效果。未在用于机器人编程的数据结构构造系统10实施例中详尽描述的技术细节,可参见本发明实施例所提供的用于机器人编程的数据结构构造方法。
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S100至步骤S500。
本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行上述方法实施例的用于机器人编程的数据结构构造方法。例如,执行以上描述的图1中的方法步骤S100至步骤S500。
以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种用于机器人编程的数据结构构造方法,其特征在于,所述方法包括:
获取由原始代码生成的原始抽象语法树;
读取原始抽象语法树中的结构体,判断结构体是否为数组,若是,则循环遍历数组的所有结构体,若否,则读取结构体,获取结构体类型;
根据结构体的类型获取对应的表达式类型,根据结构体及对应表达式生成目标语法树,从而完成新的数据结构构造。
2.根据权利要求1所述的用于机器人编程的数据结构构造方法,其特征在于,所述原始抽象语法树的对象包含的信息包括类型、名字、调用者、属性和位置。
3.根据权利要求1所述的用于机器人编程的数据结构构造方法,其特征在于,所述结构类型包括变量赋值语句结构体、函数定义结构体、if条件语句结构体、while循环语句结构体、语句表达式结构体、for…in循环语句结构体、break结构体、continue结构体、return语句结构体和代码块结构体。
4.根据权利要求1所述的用于机器人编程的数据结构构造方法,其特征在于,所述表达式类型包括函数调用表达式、一元表达式、二元表达式、变量、未包装类型的数据表达式、赋值表达式以及数据调用或读取表达式。
5.根据权利要求1所述的用于机器人编程的数据结构构造方法,其特征在于,所述根据结构体的类型获取对应的表达式类型,根据结构体及对应表达式生成目标语法树,包括:
根据结构体对象的类型来获取对应的表达式类型,根据表达式类型获取映射关系;
根据对应的映射关系及结构体生成目标语法树。
6.根据权利要求5所述的用于机器人编程的数据结构构造方法,其特征在于,所述根据对应的映射关系及结构体生成目标语法树,还包括:
获取结构体的层级,根据结构体的层级将目标语法树中的数据结构,按照同级或子级的顺序结合在一起。
7.根据权利要求6所述的用于机器人编程的数据结构构造方法,其特征在于,所述获取结构体的层级,根据结构体的层级将目标语法树中的数据结构,按照同级或子级的顺序结合在一起根据结构体的层级将目标语法树中的数据结构,按照同级或子级的顺序结合在一起后,包括:
当检测到有新数据生成时,在程序中返回目标语法树,将目标语法树和结构体中的下一个结构体对象传入原始抽象语法树进行递归,递归时将新数据插入至目标语法树对应位置,完成对原始抽象语法树的重建。
8.根据权利要求1-7任一项所述的用于机器人编程的数据结构构造方法,其特征在于,所述原始抽象语法树为符合预设规范的语法树。
9.一种用于机器人编程的数据结构构造系统,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8任一项所述的用于机器人编程的数据结构构造方法。
10.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-8任一项所述的用于机器人编程的数据结构构造方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910218634.7A CN110032363B (zh) | 2019-03-21 | 2019-03-21 | 一种用于机器人编程的数据结构构造方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910218634.7A CN110032363B (zh) | 2019-03-21 | 2019-03-21 | 一种用于机器人编程的数据结构构造方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110032363A true CN110032363A (zh) | 2019-07-19 |
CN110032363B CN110032363B (zh) | 2023-07-07 |
Family
ID=67236371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910218634.7A Active CN110032363B (zh) | 2019-03-21 | 2019-03-21 | 一种用于机器人编程的数据结构构造方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110032363B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114812A (zh) * | 2020-08-26 | 2020-12-22 | 中国船舶重工集团公司第七一六研究所 | 一种应用于工业机器人编程语言的语法检查方法 |
CN113254025A (zh) * | 2021-06-28 | 2021-08-13 | 中南大学湘雅医院 | 基于原语状态机的关键字特征集合编译方法、装置及设备 |
CN113378517A (zh) * | 2021-06-17 | 2021-09-10 | 中国工商银行股份有限公司 | 数据字典生成方法、装置、电子设备和存储介质 |
CN117389569A (zh) * | 2023-10-26 | 2024-01-12 | 重庆猪哥亮科技有限责任公司 | 一种程序解释执行方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133027A (zh) * | 2017-03-30 | 2017-09-05 | 南京南瑞继保电气有限公司 | 一种语法树层次化表示方法 |
CN107943481A (zh) * | 2017-05-23 | 2018-04-20 | 清华大学 | 基于多模型的c语言程序代码规范构造方法 |
-
2019
- 2019-03-21 CN CN201910218634.7A patent/CN110032363B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133027A (zh) * | 2017-03-30 | 2017-09-05 | 南京南瑞继保电气有限公司 | 一种语法树层次化表示方法 |
CN107943481A (zh) * | 2017-05-23 | 2018-04-20 | 清华大学 | 基于多模型的c语言程序代码规范构造方法 |
Non-Patent Citations (2)
Title |
---|
廖兴等: "基于Java语言的抽象语法树的创建与遍", 《长沙大学学报》 * |
王莉莉: "基于抽象语法树的软件语义分析方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114812A (zh) * | 2020-08-26 | 2020-12-22 | 中国船舶重工集团公司第七一六研究所 | 一种应用于工业机器人编程语言的语法检查方法 |
CN113378517A (zh) * | 2021-06-17 | 2021-09-10 | 中国工商银行股份有限公司 | 数据字典生成方法、装置、电子设备和存储介质 |
CN113254025A (zh) * | 2021-06-28 | 2021-08-13 | 中南大学湘雅医院 | 基于原语状态机的关键字特征集合编译方法、装置及设备 |
CN117389569A (zh) * | 2023-10-26 | 2024-01-12 | 重庆猪哥亮科技有限责任公司 | 一种程序解释执行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110032363B (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032363A (zh) | 一种用于机器人编程的数据结构构造方法及系统 | |
CN112100054B (zh) | 一种面向数据管控的程序静态分析方法和系统 | |
Steimann | The paradoxical success of aspect-oriented programming | |
Balzer | Transformational implementation: An example | |
Hammond et al. | Research directions in parallel functional programming | |
Liskov | A history of CLU | |
Fluet et al. | Implicitly threaded parallelism in Manticore | |
Sneyers et al. | As time goes by: constraint handling rules: a survey of CHR research from 1998 to 2007 | |
CN104536898B (zh) | C程序并行区域的检测方法 | |
JP2007521568A (ja) | 複数の例外処理モデルの中間表現 | |
CN110149800A (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
Gargantini et al. | A semantic framework for metamodel-based languages | |
Costa | Compile-time analysis for the parallel execution of logic programs in andorra-i | |
CN107515739A (zh) | 提高代码执行性能的方法及装置 | |
CN115408595B (zh) | 数据抓取引擎开发方法、执行方法、设备及存储介质 | |
US20060174227A1 (en) | Tool for processing software programs using modified live-ness definition | |
Rubio et al. | Strategies, model checking and branching-time properties in Maude | |
Lehner | A formal definition of JML in Coq and its application to runtime assertion checking | |
Viroli et al. | Operational semantics of Proto | |
Christiansen | Automated reasoning with a constraint-based metainterpreter | |
Stafford | A formal, language-independent, and compositional approach to interprocedural control dependence analysis | |
Gilbert | Executable LOTOS | |
Dixon et al. | Verifying higher-order concurrency with data automata | |
Serbanuta | A rewriting approach to concurrent programming language design and semantics | |
US20240135210A1 (en) | Replacing lambda expressions in a rete network with corresponding code classes |
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 |