CN110007922A - 基于人工智能的图形化源代码的编译方法、装置和设备 - Google Patents

基于人工智能的图形化源代码的编译方法、装置和设备 Download PDF

Info

Publication number
CN110007922A
CN110007922A CN201910217012.2A CN201910217012A CN110007922A CN 110007922 A CN110007922 A CN 110007922A CN 201910217012 A CN201910217012 A CN 201910217012A CN 110007922 A CN110007922 A CN 110007922A
Authority
CN
China
Prior art keywords
code
parameter
graphical source
preset condition
source code
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
Application number
CN201910217012.2A
Other languages
English (en)
Other versions
CN110007922B (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.)
Shenzhen Dianmao Technology Co Ltd
Original Assignee
Shenzhen Dianmao Technology Co Ltd
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 Shenzhen Dianmao Technology Co Ltd filed Critical Shenzhen Dianmao Technology Co Ltd
Priority to CN201910217012.2A priority Critical patent/CN110007922B/zh
Publication of CN110007922A publication Critical patent/CN110007922A/zh
Application granted granted Critical
Publication of CN110007922B publication Critical patent/CN110007922B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于人工智能的图形化源代码的编译方法,包括:获取图形化源代码,所述图形化源代码为XML结构;通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。本发明还公开了一种基于人工智能的图形化源代码的编译装置和设备。本发明实现了将图形化源代码从XML结构转化为JSON结构,并且只存储了关键信息,使得转化后的JSON结构代码无法恢复到原先的XML结构,实现代码的编译效果,有效保证了图形化源代码难以被窃取。

Description

基于人工智能的图形化源代码的编译方法、装置和设备
技术领域
本发明涉及计算机技术领域,更具体地说,涉及一种基于人工智能的图形化源代码的编译方法、装置和设备。
背景技术
随着科学技术的高速发展,纷繁众多的电子设备对人们工作和生活的影响越来越大。同时,随着电子设备的功能越发强大,软件的规模也日益庞大。
在软件创作的过程中,创作者既希望自己的创作可以得到广泛的传播,同时又不希望自己的创作被竞争对手轻易获取。这一行为的实现就是通过代码的编译,将源语言编写的源程序转化成目标程序。进行代码编译后,其他用户只能运行但是无法更改目标程序,只能通过更费精力的反编译手段去获取源代码。
然而,在图形化编程平台中,用户所创作的代码并不是真正意义上的代码,而是一种可扩展标记语言(Extensible Markup Language,XML)结构,这种 XML结构是用来传输和存储数据的,并不能实现计算机语言中的编译与运行,这样的数据结构一旦出现在创作者的运行程序中,其他用户便可以根据其运行程序,直接窃取创作者的劳动果实。
因此,如何有效保护图形化编程平台中用户所创作的代码是亟待解决的问题。
发明内容
针对现有技术的不足,本发明提供了一种基于人工智能的图形化源代码的编译方法、装置和设备,旨在解决图形化编程平台中的源代码容易被窃取的技术问题。
第一方面,本发明提供了一种基于人工智能的图形化源代码的编译方法,包括:
获取图形化源代码,所述图形化源代码为XML结构;
通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。
可选地,所述转化语法树将所述图形化源代码转化为JSON结构的编译代码的具体过程包括:分析所述图形化源代码中的代码的属性;
若所述图形化源代码中的代码为子代码满足第一预设条件,则调用栈记录所述代码并解析新的积木代码,所述第一预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为子代码且满足第二预设条件,则返回制定的JSON字段并继续解析所述代码的父级代码,所述第二预设条件为所述代码有参数且参数是值或所述代码无参数;
若所述图形化源代码中的代码为顺序执行代码且满足第三预设条件,则调用栈记录所述代码并解析新的积木代码,所述第三预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为顺序执行代码且满足第四预设条件,则返回制定的JSON字段并分析下一句代码,所述第三预设条件为所述代码有参数、参数是值且有下一句代码或所述代码无参数且有下一句代码;
若所述图形化源代码中的代码为顺序执行代码且满足第五预设条件,则返回制定的JSON字段并结束解析或返回到上一级调用,所述第五预设条件为所述代码有参数、参数是值且无下一句代码或所述代码无参数且无下一句代码;
若所述图形化源代码中的代码为条件代码且满足第六预设条件,则调用栈记录所述代码并解析新的积木代码,所述第六预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为条件代码且满足第七预设条件,则返回制定的JSON字段并分析下一句代码,所述第七预设条件为所述代码有参数、参数是值且所有条件结束或所述代码无参数且所有条件结束;
若所述图形化源代码中的代码为条件代码且满足第八预设条件,则记录当前调用栈并分析下一句代码,所述第八预设条件为所述代码有参数、参数是值且条件未结束或所述代码无参数且条件未结束;
若所述图形化源代码中的代码为循环代码且满足第九预设条件,则调用栈记录所述代码并解析新的积木代码,所述第九预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为循环代码且满足第十预设条件,则返回制定的JSON字段并分析下一句代码,所述第十预设条件为所述代码有参数、参数是值且循环结束或所述代码无参数且循环结束;
若所述图形化源代码中的代码为循环代码且满足第十一预设条件,则记录当前调用栈并分析下一句代码,所述第十一预设条件为所述代码有参数、参数是值且循环未结束或所述代码无参数且循环未结束。
可选地,所述通过转化语法树将所述图形化源代码转化为JSON结构的编译代码还包括:通过转化语法树分析获得所述图形化源代码的显示信息和运行信息,删除所述显示信息并将所述运行信息存储于所述JSON结构中。
可选地,所述显示信息包括图形化源代码的位置和颜色,所述运行信息包括图形化源代码的类型、连接顺序和参数。
可选地,所述关键消息以关键字的形态存储于所述JSON结构中。
第二方面,本发明提供了一种基于人工智能的图形化源代码的编译装置,包括:
获取模块,用于获取图形化源代码,所述图形化源代码为XML结构;
编译模块,用于通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON 结构中。
可选地,所述编译模块具体用于分析所述图形化源代码中的代码的属性;
若所述图形化源代码中的代码为子代码满足第一预设条件,则调用栈记录所述代码并解析新的积木代码,所述第一预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为子代码且满足第二预设条件,则返回制定的JSON字段并继续解析所述代码的父级代码,所述第二预设条件为所述代码有参数且参数是值或所述代码无参数;
若所述图形化源代码中的代码为顺序执行代码且满足第三预设条件,则调用栈记录所述代码并解析新的积木代码,所述第三预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为顺序执行代码且满足第四预设条件,则返回制定的JSON字段并分析下一句代码,所述第三预设条件为所述代码有参数、参数是值且有下一句代码或所述代码无参数且有下一句代码;
若所述图形化源代码中的代码为顺序执行代码且满足第五预设条件,则返回制定的JSON字段并结束解析或返回到上一级调用,所述第五预设条件为所述代码有参数、参数是值且无下一句代码或所述代码无参数且无下一句代码;
若所述图形化源代码中的代码为条件代码且满足第六预设条件,则调用栈记录所述代码并解析新的积木代码,所述第六预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为条件代码且满足第七预设条件,则返回制定的JSON字段并分析下一句代码,所述第七预设条件为所述代码有参数、参数是值且所有条件结束或所述代码无参数且所有条件结束;
若所述图形化源代码中的代码为条件代码且满足第八预设条件,则记录当前调用栈并分析下一句代码,所述第八预设条件为所述代码有参数、参数是值且条件未结束或所述代码无参数且条件未结束;
若所述图形化源代码中的代码为循环代码且满足第九预设条件,则调用栈记录所述代码并解析新的积木代码,所述第九预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为循环代码且满足第十预设条件,则返回制定的JSON字段并分析下一句代码,所述第十预设条件为所述代码有参数、参数是值且循环结束或所述代码无参数且循环结束;
若所述图形化源代码中的代码为循环代码且满足第十一预设条件,则记录当前调用栈并分析下一句代码,所述第十一预设条件为所述代码有参数、参数是值且循环未结束或所述代码无参数且循环未结束。
可选地,所述编译模块还用于通过转化语法树分析获得所述图形化源代码的显示信息和运行信息,删除所述显示信息并将所述运行信息存储于所述 JSON结构中。
可选地,所述编译模块还用于通过转化语法树分析获得所述图形化源代码的显示信息和运行信息,删除所述显示信息并将所述运行信息存储于所述 JSON结构中。
可选地,所述显示信息包括图形化源代码的位置和颜色,所述运行信息包括图形化源代码的类型、连接顺序和参数。
第三方面,本发明提供了一种基于人工智能的图形化源代码的编译设备,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取图形化源代码,所述图形化源代码为XML结构;
通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。
第四方面,本发明提高了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种基于人工智能的图形化源代码的编译方法,所述方法包括:
获取图形化源代码,所述图形化源代码为XML结构;
通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。
由以上技术方案可以看出,本发明具有以下优点:
本发明中通过根据图形化源代码的多种类型,建立对应的语法树,对图形化源代码中不同类型的代码进行解析,并提炼出其在运行过程中的关键信息,将关键信息以JSON结构形式进行存储,实现了将图形化源代码从XML结构转化为JSON结构,并且只存储了关键信息,使得转化后的JSON结构代码无法恢复到原先的XML结构,实现代码的编译效果,有效保证了图形化源代码难以被窃取。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例提供的一种基于人工智能的图形化源代码的编译方法的流程示意图;
图2是本发明实施例提供的一种图形化源代码的转化示意图;
图3是本发明实施例提供的一种转化语法树的转化示意图;
图4是本发明实施例提供的一种基于人工智能的图形化源代码的编译装置的结构示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者可能同时存在居中元件。当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。还需要说明的是,本发明实施例中的左、右、上、下等方位用语,仅是互为相对概念或是以产品的正常使用状态为参考的,而不应该认为是具有限制性的。
经发明人研究发现,在图形化编程平台中,原创者创作出来的图形化源代码通常不是一种真正意义上的代码,而是一种XML结构,这种结构是用来传输和存储数据,并不能实现计算机语言中的编译与运行,这样的数据结构一旦出现在创作者的运行程序中,其他用户或竞争对手可以根据其运行程序,直接窃取原创者的图形化源代码,原创者的劳动果实得不到有效的保护。由于XML 结构能够暴露出众多原创者的代码细节,因此本发明实施例中提供一种基于人工智能的图形化源代码的编译方法,通过将XML结构的图形化源代码转化为对象简谱(JavaScript Object Notation,JSON)结构,将这个JSON结构应用于原创者的目标程序中,并通过删减某些信息,使得目标程序中的JSON结构无法恢复到原先的XML结构,最终实现编译代码的目的,避免了原创者的图形化源代码遭到窃取。其中,JSON是一种轻量级的数据交换格式。它是基于欧洲计算机协会制定的js规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,还可以有效地提升了网络传输效率。因此,本发明实施例中采用JSON结构可以完美替代XML结构,不会对图形化源代码生成的程序有额外的影响。
如图1所示,本发明实施例提供了一种基于人工智能的图形化源代码的编译方法,包括:
S101、获取图形化源代码,所述图形化源代码为XML结构;
S102、通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。其中,所述关键消息可以以关键字的形态存储于所述JSON结构中。
可以理解的是,本发明实施例所提及的基于人工智能的图形化源代码的编译方法可以应用于图形化源代码的编辑器中,例如,应用于代码转化工具中,并将工具嵌入至图形化源代码的编辑器(源码编辑器)中,当创作者编辑完毕图形化源代码并触发保存的时候,可以通过调用代码转化工具的方式,直接将 XML结构的图形化源代码转化为JSON结构。如图2所示,图2为本发明实施例提供的一种图形化源代码的转化示意图。
图形化源代码通常拥有多种类型,因此,本发明实施例中设置一个专门的转化语法树,去解析整个项目中存在的所有图形化源代码。转化语法树需要对每种不同类型的代码进行分析,并提炼出其在运行过程中需要的关键信息,实现将图形化源代码转化为JSON结构的编译代码。
可以参阅图3,图3为本发明实施例提供的一种转化语法树的转化示意图。在本发明实施例提供的一个较佳实施例中,所述转化语法树将所述图形化源代码转化为JSON结构的编译代码的具体过程可以包括:分析所述图形化源代码中的代码的属性;
若所述图形化源代码中的代码为子代码满足第一预设条件,则调用栈记录所述代码并解析新的积木代码,所述第一预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为子代码且满足第二预设条件,则返回制定的JSON字段并继续解析所述代码的父级代码,所述第二预设条件为所述代码有参数且参数是值或所述代码无参数;
若所述图形化源代码中的代码为顺序执行代码且满足第三预设条件,则调用栈记录所述代码并解析新的积木代码,所述第三预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为顺序执行代码且满足第四预设条件,则返回制定的JSON字段并分析下一句代码,所述第三预设条件为所述代码有参数、参数是值且有下一句代码或所述代码无参数且有下一句代码;
若所述图形化源代码中的代码为顺序执行代码且满足第五预设条件,则返回制定的JSON字段并结束解析或返回到上一级调用,所述第五预设条件为所述代码有参数、参数是值且无下一句代码或所述代码无参数且无下一句代码;
若所述图形化源代码中的代码为条件代码且满足第六预设条件,则调用栈记录所述代码并解析新的积木代码,所述第六预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为条件代码且满足第七预设条件,则返回制定的JSON字段并分析下一句代码,所述第七预设条件为所述代码有参数、参数是值且所有条件结束或所述代码无参数且所有条件结束;
若所述图形化源代码中的代码为条件代码且满足第八预设条件,则记录当前调用栈并分析下一句代码,所述第八预设条件为所述代码有参数、参数是值且条件未结束或所述代码无参数且条件未结束;
若所述图形化源代码中的代码为循环代码且满足第九预设条件,则调用栈记录所述代码并解析新的积木代码,所述第九预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为循环代码且满足第十预设条件,则返回制定的JSON字段并分析下一句代码,所述第十预设条件为所述代码有参数、参数是值且循环结束或所述代码无参数且循环结束;
若所述图形化源代码中的代码为循环代码且满足第十一预设条件,则记录当前调用栈并分析下一句代码,所述第十一预设条件为所述代码有参数、参数是值且循环未结束或所述代码无参数且循环未结束。
需要说明的是,由于XML结构中存储的通常是图形化源代码的所有信息。在这些信息中,可以分为显示信息与运行信息,显示信息指的是将图形化代码绘制过程中需要的一些信息,例如图形化源代码的位置、颜色等等;运行信息指的是图形化源代码运行过程中需要的信息,例如图形化源代码的类型、连接顺序和参数等等。在JSON中,由于图形化源代码的显示信息不会影响程序的正常运行,所以可以将这部分显示信息删除,只保留运行状态中需要的信息。
可选地,在本发明实施例提供的一种实施方式中,所述通过转化语法树将所述图形化源代码转化为JSON结构的编译代码还包括:通过转化语法树分析获得所述图形化源代码的显示信息和运行信息,删除所述显示信息并将所述运行信息存储于所述JSON结构中。其中,所述显示信息包括图形化源代码的位置和颜色,所述运行信息包括图形化源代码的类型、连接顺序和参数。
参阅图4,本发明实施例提供了一种基于人工智能的图形化源代码的编译装置,包括:
获取模块,用于获取图形化源代码,所述图形化源代码为XML结构;
编译模块,用于通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON 结构中。
可选地,所述编译模块具体用于分析所述图形化源代码中的代码的属性;
若所述图形化源代码中的代码为子代码满足第一预设条件,则调用栈记录所述代码并解析新的积木代码,所述第一预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为子代码且满足第二预设条件,则返回制定的JSON字段并继续解析所述代码的父级代码,所述第二预设条件为所述代码有参数且参数是值或所述代码无参数;
若所述图形化源代码中的代码为顺序执行代码且满足第三预设条件,则调用栈记录所述代码并解析新的积木代码,所述第三预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为顺序执行代码且满足第四预设条件,则返回制定的JSON字段并分析下一句代码,所述第三预设条件为所述代码有参数、参数是值且有下一句代码或所述代码无参数且有下一句代码;
若所述图形化源代码中的代码为顺序执行代码且满足第五预设条件,则返回制定的JSON字段并结束解析或返回到上一级调用,所述第五预设条件为所述代码有参数、参数是值且无下一句代码或所述代码无参数且无下一句代码;
若所述图形化源代码中的代码为条件代码且满足第六预设条件,则调用栈记录所述代码并解析新的积木代码,所述第六预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为条件代码且满足第七预设条件,则返回制定的JSON字段并分析下一句代码,所述第七预设条件为所述代码有参数、参数是值且所有条件结束或所述代码无参数且所有条件结束;
若所述图形化源代码中的代码为条件代码且满足第八预设条件,则记录当前调用栈并分析下一句代码,所述第八预设条件为所述代码有参数、参数是值且条件未结束或所述代码无参数且条件未结束;
若所述图形化源代码中的代码为循环代码且满足第九预设条件,则调用栈记录所述代码并解析新的积木代码,所述第九预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为循环代码且满足第十预设条件,则返回制定的JSON字段并分析下一句代码,所述第十预设条件为所述代码有参数、参数是值且循环结束或所述代码无参数且循环结束;
若所述图形化源代码中的代码为循环代码且满足第十一预设条件,则记录当前调用栈并分析下一句代码,所述第十一预设条件为所述代码有参数、参数是值且循环未结束或所述代码无参数且循环未结束。
可选地,所述编译模块还用于通过转化语法树分析获得所述图形化源代码的显示信息和运行信息,删除所述显示信息并将所述运行信息存储于所述 JSON结构中。
可选地,所述编译模块还用于通过转化语法树分析获得所述图形化源代码的显示信息和运行信息,删除所述显示信息并将所述运行信息存储于所述 JSON结构中。
可选地,所述显示信息包括图形化源代码的位置和颜色,所述运行信息包括图形化源代码的类型、连接顺序和参数。
本发明实施例提供了一种基于人工智能的图形化源代码的编译设备,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取图形化源代码,所述图形化源代码为XML结构;
通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。
第四方面,本发明实施例提高了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种基于人工智能的图形化源代码的编译方法,所述方法包括:
获取图形化源代码,所述图形化源代码为XML结构;
通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种基于人工智能的图形化源代码的编译方法,其特征在于,包括:
获取图形化源代码,所述图形化源代码为XML结构;
通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。
2.根据权利要求1所述的基于人工智能的图形化源代码的编译方法,其特征在于,所述转化语法树将所述图形化源代码转化为JSON结构的编译代码的具体过程包括:分析所述图形化源代码中的代码的属性;
若所述图形化源代码中的代码为子代码满足第一预设条件,则调用栈记录所述代码并解析新的积木代码,所述第一预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为子代码且满足第二预设条件,则返回制定的JSON字段并继续解析所述代码的父级代码,所述第二预设条件为所述代码有参数且参数是值或所述代码无参数;
若所述图形化源代码中的代码为顺序执行代码且满足第三预设条件,则调用栈记录所述代码并解析新的积木代码,所述第三预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为顺序执行代码且满足第四预设条件,则返回制定的JSON字段并分析下一句代码,所述第三预设条件为所述代码有参数、参数是值且有下一句代码或所述代码无参数且有下一句代码;
若所述图形化源代码中的代码为顺序执行代码且满足第五预设条件,则返回制定的JSON字段并结束解析或返回到上一级调用,所述第五预设条件为所述代码有参数、参数是值且无下一句代码或所述代码无参数且无下一句代码;
若所述图形化源代码中的代码为条件代码且满足第六预设条件,则调用栈记录所述代码并解析新的积木代码,所述第六预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为条件代码且满足第七预设条件,则返回制定的JSON字段并分析下一句代码,所述第七预设条件为所述代码有参数、参数是值且所有条件结束或所述代码无参数且所有条件结束;
若所述图形化源代码中的代码为条件代码且满足第八预设条件,则记录当前调用栈并分析下一句代码,所述第八预设条件为所述代码有参数、参数是值且条件未结束或所述代码无参数且条件未结束;
若所述图形化源代码中的代码为循环代码且满足第九预设条件,则调用栈记录所述代码并解析新的积木代码,所述第九预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为循环代码且满足第十预设条件,则返回制定的JSON字段并分析下一句代码,所述第十预设条件为所述代码有参数、参数是值且循环结束或所述代码无参数且循环结束;
若所述图形化源代码中的代码为循环代码且满足第十一预设条件,则记录当前调用栈并分析下一句代码,所述第十一预设条件为所述代码有参数、参数是值且循环未结束或所述代码无参数且循环未结束。
3.根据权利要求1所述的基于人工智能的图形化源代码的编译方法,其特征在于,所述通过转化语法树将所述图形化源代码转化为JSON结构的编译代码还包括:通过转化语法树分析获得所述图形化源代码的显示信息和运行信息,删除所述显示信息并将所述运行信息存储于所述JSON结构中。
4.根据权利要求3所述的基于人工智能的图形化源代码的编译方法,其特征在于,所述显示信息包括图形化源代码的位置和颜色,所述运行信息包括图形化源代码的类型、连接顺序和参数。
5.根据权利要求1所述的基于人工智能的图形化源代码的编译方法,其特征在于,所述关键消息以关键字的形态存储于所述JSON结构中。
6.一种基于人工智能的图形化源代码的编译装置,其特征在于,包括:
获取模块,用于获取图形化源代码,所述图形化源代码为XML结构;
编译模块,用于通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。
7.根据权利要求6所述的基于人工智能的图形化源代码的编译装置,其特征在于,所述编译模块具体用于分析所述图形化源代码中的代码的属性;
若所述图形化源代码中的代码为子代码满足第一预设条件,则调用栈记录所述代码并解析新的积木代码,所述第一预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为子代码且满足第二预设条件,则返回制定的JSON字段并继续解析所述代码的父级代码,所述第二预设条件为所述代码有参数且参数是值或所述代码无参数;
若所述图形化源代码中的代码为顺序执行代码且满足第三预设条件,则调用栈记录所述代码并解析新的积木代码,所述第三预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为顺序执行代码且满足第四预设条件,则返回制定的JSON字段并分析下一句代码,所述第三预设条件为所述代码有参数、参数是值且有下一句代码或所述代码无参数且有下一句代码;
若所述图形化源代码中的代码为顺序执行代码且满足第五预设条件,则返回制定的JSON字段并结束解析或返回到上一级调用,所述第五预设条件为所述代码有参数、参数是值且无下一句代码或所述代码无参数且无下一句代码;
若所述图形化源代码中的代码为条件代码且满足第六预设条件,则调用栈记录所述代码并解析新的积木代码,所述第六预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为条件代码且满足第七预设条件,则返回制定的JSON字段并分析下一句代码,所述第七预设条件为所述代码有参数、参数是值且所有条件结束或所述代码无参数且所有条件结束;
若所述图形化源代码中的代码为条件代码且满足第八预设条件,则记录当前调用栈并分析下一句代码,所述第八预设条件为所述代码有参数、参数是值且条件未结束或所述代码无参数且条件未结束;
若所述图形化源代码中的代码为循环代码且满足第九预设条件,则调用栈记录所述代码并解析新的积木代码,所述第九预设条件为所述代码有参数且参数为图形化代码;
若所述图形化源代码中的代码为循环代码且满足第十预设条件,则返回制定的JSON字段并分析下一句代码,所述第十预设条件为所述代码有参数、参数是值且循环结束或所述代码无参数且循环结束;
若所述图形化源代码中的代码为循环代码且满足第十一预设条件,则记录当前调用栈并分析下一句代码,所述第十一预设条件为所述代码有参数、参数是值且循环未结束或所述代码无参数且循环未结束。
8.根据权利要求6所述的基于人工智能的图形化源代码的编译装置,其特征在于,所述编译模块还用于通过转化语法树分析获得所述图形化源代码的显示信息和运行信息,删除所述显示信息并将所述运行信息存储于所述JSON结构中。
9.一种基于人工智能的图形化源代码的编译设备,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取图形化源代码,所述图形化源代码为XML结构;
通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。
10.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种基于人工智能的图形化源代码的编译方法,所述方法包括:
获取图形化源代码,所述图形化源代码为XML结构;
通过转化语法树将所述图形化源代码转化为JSON结构的编译代码,所述转化语法树用于对所述图形化源代码中子代码、顺序执行代码、条件代码和循环调用代码进行分析,并将分析后获得的关键消息存储于JSON结构中。
CN201910217012.2A 2019-03-21 2019-03-21 基于人工智能的图形化源代码的编译方法、装置和设备 Active CN110007922B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910217012.2A CN110007922B (zh) 2019-03-21 2019-03-21 基于人工智能的图形化源代码的编译方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910217012.2A CN110007922B (zh) 2019-03-21 2019-03-21 基于人工智能的图形化源代码的编译方法、装置和设备

Publications (2)

Publication Number Publication Date
CN110007922A true CN110007922A (zh) 2019-07-12
CN110007922B CN110007922B (zh) 2022-10-21

Family

ID=67167640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910217012.2A Active CN110007922B (zh) 2019-03-21 2019-03-21 基于人工智能的图形化源代码的编译方法、装置和设备

Country Status (1)

Country Link
CN (1) CN110007922B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647360A (zh) * 2019-08-20 2020-01-03 百度在线网络技术(北京)有限公司 协处理器的设备执行代码的处理方法、装置、设备及计算机可读存储介质
CN111857693A (zh) * 2020-05-29 2020-10-30 北京编程猫科技有限公司 一种基于图像化编程的调用第三方函数的方法及装置
CN113966494A (zh) * 2019-08-27 2022-01-21 西门子股份公司 支持基于神经元块图形编程的系统、方法及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104503793A (zh) * 2014-12-24 2015-04-08 风腾科技(北京)有限公司 代码练习软件中代码的运行和图形化的解析方法
CN107278290A (zh) * 2017-05-16 2017-10-20 深圳市创客工场科技有限公司 积木式编程转换成程序代码的方法及装置
US20170344227A1 (en) * 2016-05-31 2017-11-30 Vmware, Inc. Visual designer for editing large schemaless xml file
CN108924153A (zh) * 2018-07-23 2018-11-30 深圳点猫科技有限公司 一种在图形化编程工具中的云变量操作方法及电子设备
CN108984693A (zh) * 2018-07-04 2018-12-11 深圳点猫科技有限公司 一种基于人工智能的编程程序的分享方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104503793A (zh) * 2014-12-24 2015-04-08 风腾科技(北京)有限公司 代码练习软件中代码的运行和图形化的解析方法
US20170344227A1 (en) * 2016-05-31 2017-11-30 Vmware, Inc. Visual designer for editing large schemaless xml file
CN107278290A (zh) * 2017-05-16 2017-10-20 深圳市创客工场科技有限公司 积木式编程转换成程序代码的方法及装置
CN108984693A (zh) * 2018-07-04 2018-12-11 深圳点猫科技有限公司 一种基于人工智能的编程程序的分享方法及系统
CN108924153A (zh) * 2018-07-23 2018-11-30 深圳点猫科技有限公司 一种在图形化编程工具中的云变量操作方法及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
蒋立辉: "浅谈Scratch的游戏教学法与实践", 《新课程·中旬》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647360A (zh) * 2019-08-20 2020-01-03 百度在线网络技术(北京)有限公司 协处理器的设备执行代码的处理方法、装置、设备及计算机可读存储介质
CN110647360B (zh) * 2019-08-20 2022-05-03 百度在线网络技术(北京)有限公司 协处理器的设备执行代码的处理方法、装置、设备及计算机可读存储介质
CN113966494A (zh) * 2019-08-27 2022-01-21 西门子股份公司 支持基于神经元块图形编程的系统、方法及存储介质
CN111857693A (zh) * 2020-05-29 2020-10-30 北京编程猫科技有限公司 一种基于图像化编程的调用第三方函数的方法及装置
CN111857693B (zh) * 2020-05-29 2023-12-26 北京编程猫科技有限公司 一种基于图像化编程的调用第三方函数的方法及装置

Also Published As

Publication number Publication date
CN110007922B (zh) 2022-10-21

Similar Documents

Publication Publication Date Title
CN110007922A (zh) 基于人工智能的图形化源代码的编译方法、装置和设备
CN115617327A (zh) 低代码页面搭建系统、方法及计算机可读存储介质
US20080046868A1 (en) Method and system for template-based code generation
CN112149399A (zh) 基于rpa及ai的表格信息抽取方法、装置、设备及介质
CN106293664A (zh) 代码生成方法及装置
US10078634B2 (en) Visualizing and exploring natural-language text
CN108595334B (zh) 一种计算Java程序动态切片的方法、装置及可读存储介质
CN114564199A (zh) 一种生成使用页面的方法、装置、设备及可读存储介质
US9305032B2 (en) Framework for generating programs to process beacons
CN115202663A (zh) 一种数据处理方法、装置和存储介质
Savic et al. Preliminary experience using JetBrains MPS to implement a requirements specification language
JP2010079511A (ja) 生成装置、プログラムおよび生成方法
CN102707934B (zh) 一种以脚本形式表示增值业务流程的实现方法和系统
CN109740138A (zh) 一种实现思维导图软件中图片文件可编辑的方法
KR100688444B1 (ko) 프로그램 자동 변환 방법 및 프로그램 자동 변환 장치
CN116610558A (zh) 代码检测方法、装置、电子设备及计算机可读存储介质
CN112799638B (zh) 无侵入式快速开发方法、平台、终端及存储介质
Bergmann et al. Model generation in SLX using CMSD and XML stylesheet transformations
JP2016218851A (ja) ビジネスプロセス図生成装置、ビジネスプロセス図生成プログラム、および、ビジネスプロセス図生成方法
CN109522356B (zh) 一种核反应堆数字实验系统
CN107451167A (zh) 站内点击位的点击数据获取方法和系统
CN112199335A (zh) 一种操作日志的生成方法和生成系统
JP2009080681A (ja) プログラム構造解析方法及び装置
JP4698943B2 (ja) プログラム生産方法、プログラム生産装置、プログラム自動変換方法、およびプログラム
JP2003280956A (ja) データベースcase装置

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