CN109101231A - 脚本代码生成方法、装置、计算机设备和存储介质 - Google Patents
脚本代码生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109101231A CN109101231A CN201810889855.2A CN201810889855A CN109101231A CN 109101231 A CN109101231 A CN 109101231A CN 201810889855 A CN201810889855 A CN 201810889855A CN 109101231 A CN109101231 A CN 109101231A
- Authority
- CN
- China
- Prior art keywords
- code
- scripted
- target
- snippet
- template
- 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
-
- 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/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种脚本代码生成方法、装置、计算机设备和存储介质。其中,所述方法包括:获取针对目标脚本代码的代码意图,代码意图用于指示欲完成的功能及逻辑的描述内容;根据代码意图生成对应的代码片段;根据目标脚本编程语言的语言规范,将代码片段嵌入预设的代码模板中的对应位置上以生成目标脚本代码。本申请实施例通过采用自动化生成方式,大大节省了编程人力投入,并通过采用统一代码模板及代码映射关系,使得所生成的脚本代码规范风格标准统一;通过更新代码模板,可快速更新自动化生成代码,大大降低了代码维护成本。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种脚本代码生成方法、装置、计算机设备和计算机可读存储介质。
背景技术
相关技术中,通常主要采用以下两种方法实现程序或代码的生成:一种方式是通过专业人员基于目标脚本编程语言,根据功能需求手工编写相应的程序代码;另一种方法是基于开发图形用户界面(Graphical User Interface,英文简称为GUI)生成程序,比如基于开发人员在图形模块中编辑以自动生成对应的程序代码。
但是,上述这两种程序或代码生成方法存在以下缺陷:1)通过专业人员基于目标脚本编程语言手工编写程序的方式,无法避免人工错误,导致引入程序漏洞(对应英文为:BUG),并且,无法避免因人而异的编程风格、标准,使得代码维护成本高;2)基于开发图形用户界面生成程序的方式,使得生成的程序功能受限于图形模块功能,无法定制化拓展、二次开发,并且,所生成的程序为二进制可执行程序,无法进行代码层面的渗透、修改,导致生成的程序不具有代码的可复用性和可封装性。
发明内容
本申请的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本申请的第一个目的在于提出一种脚本代码生成方法。该方法通过采用自动化生成方式,大大节省了编程人力投入,并通过采用统一代码模板及代码映射关系,使得所生成的脚本代码规范风格标准统一;通过更新代码模板,可快速更新自动化生成代码,大大降低了代码维护成本。
本申请的第二个目的在于提出一种脚本代码生成装置。
本申请的第三个目的在于提出一种计算机设备。
本申请的第四个目的在于提出一种计算机可读存储介质。
为达到上述目的,本申请第一方面实施例提出的脚本代码生成方法,包括:获取针对目标脚本代码的代码意图,所述代码意图用于指示欲完成的功能及逻辑的描述内容;根据所述代码意图生成对应的代码片段;根据目标脚本编程语言的语言规范,将所述代码片段嵌入预设的代码模板中的对应位置上以生成所述目标脚本代码。
本申请实施例的脚本代码生成方法,可以获取针对目标脚本代码的代码意图,代码意图用于指示欲完成的功能及逻辑的描述内容,并根据代码意图生成对应的代码片段,然后,根据目标脚本编程语言的语言规范,将代码片段嵌入预设的代码模板中的对应位置上以生成目标脚本代码。在整个脚本代码生成的过程中,通过采用自动化生成方式,大大节省了编程人力投入,并通过采用统一代码模板及代码映射关系,使得所生成的脚本代码规范风格标准统一;通过更新代码模板,可快速更新自动化生成代码,大大降低了代码维护成本。另外,通过采用代码模板可以实现基于源代码直接完成既定功能,同时保留基于生成的脚本代码进行集成、封装的定制化修改能力。
为达到上述目的,本申请第二方面实施例提出的脚本代码生成装置,包括:代码意图获取模块,用于获取针对目标脚本代码的代码意图,所述代码意图用于指示欲完成的功能及逻辑的描述内容;代码片段生成模块,用于根据所述代码意图生成对应的代码片段;脚本代码生成模块,用于根据目标脚本编程语言的语言规范,将所述代码片段嵌入预设的代码模板中的对应位置上以生成所述目标脚本代码。
本申请实施例的脚本代码生成装置,可通过代码意图获取模块获取针对目标脚本代码的代码意图,代码意图用于指示欲完成的功能及逻辑的描述内容,代码片段生成模块根据代码意图生成对应的代码片段,脚本代码生成模块根据目标脚本编程语言的语言规范,将代码片段嵌入预设的代码模板中的对应位置上以生成目标脚本代码。在整个脚本代码生成的过程中,通过采用自动化生成方式,大大节省了编程人力投入,并通过采用统一代码模板及代码映射关系,使得所生成的脚本代码规范风格标准统一;通过更新代码模板,可快速更新自动化生成代码,大大降低了代码维护成本。另外,通过采用代码模板可以实现基于源代码直接完成既定功能,同时保留基于生成的脚本代码进行集成、封装的定制化修改能力。
为达到上述目的,本申请第三方面实施例提出的计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现本申请第一方面实施例所述的脚本代码生成方法。
为达到上述目的,本申请第四方面实施例提出的非临时性计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请第一方面实施例所述的脚本代码生成方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本申请一个实施例的脚本代码生成方法的流程图;
图2是根据本申请实施例的脚本代码生成方法的示例图;
图3根据本申请一个实施例的脚本代码生成方法的流程图;
图4是根据本申请一个实施例的脚本代码生成装置的结构示意图;
图5是根据本申请一个具体实施例的脚本代码生成装置的结构示意图;
图6是根据本申请另一个具体实施例的脚本代码生成装置的结构示意图;
图7是根据本申请又一个具体实施例的脚本代码生成装置的结构示意图;
图8是根据本申请一个实施例的计算机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述根据本申请实施例的脚本代码生成方法、装置、计算机设备和计算机可读存储介质。
图1是根据本申请一个实施例的脚本代码生成方法的流程图。需要说明的是,本申请实施例的脚本代码生成方法可应用于本申请实施例的脚本代码生成装置,该脚本代码生成装置可被配置于计算机设备上。例如,该计算机设备可以是具有脚本代码生成功能的设备,该设备可分为服务端和客户端,比如服务端可接收客户端发送的由使用者编辑的代码意图描述文件,并根据接收到的代码意图描述文件生成对应的脚本代码,并将生成的脚本代码提供给客户端,从而实现脚本代码的自动化生成功能。
如图1所示,该脚本代码生成方法可以包括:
S110,获取针对目标脚本代码的代码意图,代码意图用于指示欲完成的功能及逻辑的描述内容。
举例而言,本申请实施例的脚本代码生成方法可为用户提供针对代码意图的输入接口,用户可通过该接口编辑针对目标脚本代码欲完成的功能及逻辑,并在监测到用户确认编辑完成时,可获取用户编辑的针对目标脚本代码的代码意图。
例如,可为用户提供客户端,用户可在该客户端中编辑针对目标脚本代码欲完成的功能及逻辑,当监测到用户确认编辑完成时,客户端可通过统一的描述文件格式将用户编辑的内容(即针对目标脚本代码欲完成的功能及逻辑)生成对应的代码意图描述文件,其中,该代码意图描述文件中可包括针对目标脚本代码的代码意图。之后,客户端可将生成的代码意图描述文件进行上传,以使服务端获得所述针对目标脚本代码的代码意图。也就是说,可利用代码意图描述文件定义期望完成的代码功能,即可通过统一描述文件格式,例如JSON、Array等格式,描述目标脚本代码期望完成的功能及逻辑。
又如,客户端可采用AOP(Aspect Oriented Programming,面向切面编程)技术手段,采集用户编辑的针对目标脚本代码欲完成的功能及逻辑,并根据该编辑内容自动生成代码意图描述文件,之后,客户端可将生成的代码意图描述文件进行上传,以使服务端获得所述针对目标脚本代码的代码意图。
S120,根据代码意图生成对应的代码片段。
可选地,对所述代码意图进行解析,获得所述代码意图中的意图关键信息,并基于意图与代码的映射关系表,获得与所述意图关键信息对应的代码片段。其中,在本申请的实施例中,所述意图关键信息可理解是用以表示预实现功能和逻辑的参数或标识。例如,如图2所示中的“代码意图描述文件”,其中的“序列1”和“序列2”意图关键信息用于表示欲实现两种逻辑或功能,每个序列中定义了操作对象、操作方法和操作参数等意图。
作为一种可能实现方式的示例,可通过代码生成器,对所述代码意图进行解析,获得该代码意图中的意图关键信息,如用以表示操作对象、操作方法和操作参数等意图关键信息,并通过意图与代码的映射关系表,进行代码片段映射,获得与该意图关键信息所对应的代码片段。
S130,根据目标脚本编程语言的语言规范,将代码片段嵌入预设的代码模板中的对应位置上以生成目标脚本代码。
可选地,将所生成的代码片段的每一行的前面,加入符合所述目标脚本编程语言的语言规范的缩进控制,并将已加入缩进控制的代码片段嵌入到所述代码模板中的对应位置上,以生成所述目标脚本代码,从而完成脚本代码自动化生成,并正确反映代码意图。
需要说明的是,在本申请的实施例中,所述代码模板可以是根据实际需求预先设定的。作为一种示例,所述代码模板可包括初始化代码、执行代码和结束代码;其中,所述初始化代码和结束代码为模块通用代码,所述初始化代码用于完成初始化动作,比如环境准备、内存申请、实例生成等,所述结束代码用于完成结束动作,比如还原环境、释放内容、实例解构等。所述执行代码可用于完成程序代码所实现的功能及逻辑。可以理解,在根据代码意图所生成的代码片段之后,可将该代码片段嵌入到所述代码模板中执行代码的对应位置上,以完成执行代码的实现,这样,连同初始化代码和结束代码,构成了功能完整代码模块。
举例而言,以所述目标脚本编程语言为Python语言,所述目标脚本代码为Python脚本代码为例,即假设本申请实施例的脚本代码生成方法用于生成Python脚本代码。例如,如图2所示,使用者可通过客户端在代码意图描述文件中定义期望完成的脚本代码功能,客户端可将使用者编辑的代码意图描述文件上传到服务端。服务端在接收到该代码意图描述文件时,可读取该代码意图描述文件中针对Python脚本代码的代码意图,其中,该代码意图用于指示Python脚本代码欲完成的功能及逻辑的描述内容。
在得到代码意图之后,可通过代码生成器对所述代码意图进行解析,获得所述代码意图中的意图关键信息,并基于意图与代码的映射关系表,获得与所述意图关键信息对应的代码片段。比如,代码意图描述文件中定义了两个代码功能或逻辑(即序列1和序列2),通过代码生成器对“序列1”和“序列2”这两个描述的解析以及代码的映射,分别得到对应的代码片段1和代码片段2。之后,可将代码片段1和代码片段2嵌入预设的代码模板中执行代码的对应位置上,完成执行代码的实现,连同初始化代码和结束代码,构成了功能完整代码模块。
本申请实施例的脚本代码生成方法,可以获取针对目标脚本代码的代码意图,代码意图用于指示欲完成的功能及逻辑的描述内容,并根据代码意图生成对应的代码片段,然后,根据目标脚本编程语言的语言规范,将代码片段嵌入预设的代码模板中的对应位置上以生成目标脚本代码。在整个脚本代码生成的过程中,通过采用自动化生成方式,大大节省了编程人力投入,并通过采用统一代码模板及代码映射关系,使得所生成的脚本代码规范风格标准统一;通过更新代码模板,可快速更新自动化生成代码,大大降低了代码维护成本。另外,通过采用代码模板可以实现基于源代码直接完成既定功能,同时保留基于生成的脚本代码进行集成、封装的定制化修改能力。
为了能够实现快速高效再次生成代码,以应对软件工程中常常发生的重构需求,可选地,在本申请的一个实施例中,可按照重构需求对所述代码模板进行定制化修改。也就是说,对于软件工程中常常发生的重构需求,本申请可提供基于修改代码模板的方式,以快速高效再次生成代码,大大降低了代码重构成本。
图3是根据本申请一个具体实施例的脚本代码生成方法的流程图。
为了能够将生成的代码片段准确的嵌入到代码模板的对应位置上,保证生成脚本代码的成功率。在本申请的实施例中,在将所述代码片段嵌入预设的代码模板中的对应位置上以生成所述目标脚本代码之前,可在所述代码模板中标注锚点,这样,以便在进入代码片段嵌入过程中,可基于已标注的锚点来定位所述代码片段将要嵌入的位置。具体地,如图3所示,该脚本代码生成方法可以包括:
S310,获取针对目标脚本代码的代码意图,代码意图用于指示欲完成的功能及逻辑的描述内容。
S320,根据代码意图生成对应的代码片段。
可选地,对所述代码意图进行解析,获得所述代码意图中的意图关键信息,并基于意图与代码的映射关系表,获得与所述意图关键信息对应的代码片段。
S330,在预设的代码模板中标注锚点,所述锚点用于描述代码片段的嵌入位置。
例如,在所述代码模板中标注代码锚点,以描述代码嵌入位置,从而实现通过锚点定位代码嵌入位置的目的。
需要说明的是,在本申请的一个实施例中,所述代码模板可包括初始化代码、执行代码和结束代码;其中,所述初始化代码和结束代码为模块通用代码,所述初始化代码用于完成初始化动作,比如环境准备、内存申请、实例生成等,所述结束代码用于完成结束动作,比如还原环境、释放内容、实例解构等;所述执行代码可用于完成程序代码所实现的功能及逻辑。
其中,在本申请的实施例中,所述锚点可位于所述代码模板中的执行代码部分。也就是说,可在代码模板中的执行代码部分标注代码锚点,以描述生成的代码片段嵌入到执行代码中锚点标注的位置。
还需要说明的是,在本申请的一个实施例中,所述步骤S330可以在步骤S310和S320之后执行,还可以在步骤S310之后执行,或者,还可以在步骤S310之前执行。例如,可以在将所述代码片段嵌入代码模板之前的任何时刻均可执行步骤S330。
S340,根据目标脚本编程语言的语言规范,将所述代码片段嵌入经过锚点标注的代码模板中以生成所述目标脚本代码。
可选地,基于所述目标脚本编程语言的格式控制参数,将所述代码片段的每一行前,加入符合所述目标脚本编程语言的语言规范的缩进控制,并将经加入所述缩进控制的所述代码片段,嵌入至所述代码模板中所述锚点的标注位置以生成所述目标脚本代码。
例如,以所述目标脚本编程语言为Python语言,所述目标脚本代码为Python脚本代码为例,即假设本申请实施例的脚本代码生成方法用于生成Python脚本代码,在代码片段嵌入阶段时,可定位到经过锚点标注的代码模板中的锚点位置,并将生成的代码片段插入该锚点对应位置,同时引入脚本编程语言Python格式控制参数,按照Python的语言规范,在每一行插入代码前插入与代码嵌入逻辑对应的缩进控制参数Indent,以完成执行代码的实现,连同初始化代码及结束代码,构成功能完整代码模块。
本申请实施例的脚本代码生成方法,在将所述代码片段嵌入预设的代码模板中的对应位置上以生成所述目标脚本代码之前,可在所述代码模板中标注锚点,这样,以便在进入代码片段嵌入过程中,可基于已标注的锚点来定位所述代码片段将要嵌入的位置,从而能够将生成的代码片段准确的嵌入到代码模板的对应位置上,保证了生成脚本代码的成功率。
与上述几种实施例提供的脚本代码生成方法相对应,本申请的一种实施例还提供一种脚本代码生成装置,由于本申请实施例提供的脚本代码生成装置与上述几种实施例提供的脚本代码生成方法相对应,因此在前述脚本代码生成方法的实施方式也适用于本实施例提供的脚本代码生成装置,在本实施例中不再详细描述。图4是根据本申请一个实施例的脚本代码生成装置的结构示意图。如图4所示,该脚本代码生成装置400可以包括:代码意图获取模块410、代码片段生成模块420和脚本代码生成模块430。
具体地,代码意图获取模块410用于获取针对目标脚本代码的代码意图,代码意图用于指示欲完成的功能及逻辑的描述内容。
代码片段生成模块420用于根据代码意图生成对应的代码片段。作为一种示例,如图5所示,代码片段生成模块420可包括:代码意图解析单元421和代码片段生成单元422。其中,代码意图解析单元421用于对所述代码意图进行解析,获取所述代码意图中的意图关键信息;代码片段生成单元422用于基于意图与代码的映射关系表,获得与所述意图关键信息对应的代码片段。
脚本代码生成模块430用于根据目标脚本编程语言的语言规范,将代码片段嵌入预设的代码模板中的对应位置上以生成目标脚本代码。作为一种示例,所述目标脚本编程语言为Python语言;所述目标脚本代码为Python脚本代码。
所述代码模板包括初始化代码、执行代码和结束代码;其中,所述初始化代码和结束代码为模块通用代码,所述初始化代码用于完成初始化动作,所述结束代码用于完成结束动作;
为了能够将生成的代码片段准确的嵌入到代码模板的对应位置上,保证生成脚本代码的成功率。可选地,在本申请的一个实施例中,如图6所示,该脚本代码生成装置400还可包括:锚点标注模块440。锚点标注模块440可用于在将所述代码片段嵌入预设的代码模板中的对应位置上以生成所述目标脚本代码之前,在所述代码模板中标注锚点,所述锚点用于描述代码片段的嵌入位置。其中,在本申请的实施例中,脚本代码生成模块430可根据目标脚本编程语言的语言规范,将所述代码片段嵌入经过锚点标注的所述代码模板中以生成所述目标脚本代码。
作为一种可能实现方式的示例,如图7所示,该脚本代码生成模块430可包括:控制参数添加单元431和脚本代码生成单元432。其中,控制参数添加单元431用于基于所述目标脚本编程语言的格式控制参数,将所述代码片段的每一行前,加入符合所述目标脚本编程语言的语言规范的缩进控制;脚本代码生成单元432用于将经加入所述缩进控制的所述代码片段,嵌入至所述代码模板中所述锚点的标注位置以生成所述目标脚本代码。
本申请实施例的脚本代码生成装置,可通过代码意图获取模块获取针对目标脚本代码的代码意图,代码意图用于指示欲完成的功能及逻辑的描述内容,代码片段生成模块根据代码意图生成对应的代码片段,脚本代码生成模块根据目标脚本编程语言的语言规范,将代码片段嵌入预设的代码模板中的对应位置上以生成目标脚本代码。在整个脚本代码生成的过程中,通过采用自动化生成方式,大大节省了编程人力投入,并通过采用统一代码模板及代码映射关系,使得所生成的脚本代码规范风格标准统一;通过更新代码模板,可快速更新自动化生成代码,大大降低了代码维护成本。另外,通过采用代码模板可以实现基于源代码直接完成既定功能,同时保留基于生成的脚本代码进行集成、封装的定制化修改能力。
为了实现上述实施例,本申请还提出了一种计算机设备。
图8是根据本申请一个实施例的计算机设备的结构示意图。如图8所示,该计算机设备800可以包括:存储器810、处理器820及存储在存储器810上并可在处理器820上运行的计算机程序830,处理器820执行所述程序830时,实现本申请上述任一个实施例所述的脚本代码生成方法。
为了实现上述实施例,本申请还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请上述任一个实施例所述的脚本代码生成方法。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (14)
1.一种脚本代码生成方法,其特征在于,包括以下步骤:
获取针对目标脚本代码的代码意图,所述代码意图用于指示欲完成的功能及逻辑的描述内容;
根据所述代码意图生成对应的代码片段;
根据目标脚本编程语言的语言规范,将所述代码片段嵌入预设的代码模板中的对应位置上以生成所述目标脚本代码。
2.根据权利要求1所述的脚本代码生成方法,其特征在于,所述根据所述代码意图生成对应的代码片段,包括:
对所述代码意图进行解析,获取所述代码意图中的意图关键信息;
基于意图与代码的映射关系表,获得与所述意图关键信息对应的代码片段。
3.根据权利要求1所述的脚本代码生成方法,其特征在于,在将所述代码片段嵌入预设的代码模板中的对应位置上以生成所述目标脚本代码,之前还包括:
在所述代码模板中标注锚点,所述锚点用于描述代码片段的嵌入位置;
其中,根据目标脚本编程语言的语言规范,将所述代码片段嵌入预设的代码模板中的对应位置上以生成所述目标脚本代码,包括:
根据目标脚本编程语言的语言规范,将所述代码片段嵌入经过锚点标注的所述代码模板中以生成所述目标脚本代码。
4.根据权利要求3所述的脚本代码生成方法,其特征在于,所述根据目标脚本编程语言的语言规范,将所述代码片段嵌入经过锚点标注的所述代码模板中以生成所述目标脚本代码,包括:
基于所述目标脚本编程语言的格式控制参数,将所述代码片段的每一行前,加入符合所述目标脚本编程语言的语言规范的缩进控制;
将经加入所述缩进控制的所述代码片段,嵌入至所述代码模板中所述锚点的标注位置以生成所述目标脚本代码。
5.根据权利要求3或4所述的脚本代码生成方法,其特征在于,所述代码模板包括初始化代码、执行代码和结束代码;其中,所述初始化代码和结束代码为模块通用代码,所述初始化代码用于完成初始化动作,所述结束代码用于完成结束动作;所述锚点位于所述代码模板中的执行代码部分。
6.根据权利要求1至4中任一项所述的脚本代码生成方法,其特征在于,所述目标脚本编程语言为Python语言;所述目标脚本代码为Python脚本代码。
7.一种脚本代码生成装置,其特征在于,包括:
代码意图获取模块,用于获取针对目标脚本代码的代码意图,所述代码意图用于指示欲完成的功能及逻辑的描述内容;
代码片段生成模块,用于根据所述代码意图生成对应的代码片段;
脚本代码生成模块,用于根据目标脚本编程语言的语言规范,将所述代码片段嵌入预设的代码模板中的对应位置上以生成所述目标脚本代码。
8.根据权利要求7所述的脚本代码生成装置,其特征在于,所述代码片段生成模块包括:
代码意图解析单元,用于对所述代码意图进行解析,获取所述代码意图中的意图关键信息;
代码片段生成单元,用于基于意图与代码的映射关系表,获得与所述意图关键信息对应的代码片段。
9.根据权利要求7所述的脚本代码生成装置,其特征在于,还包括:
锚点标注模块,用于在将所述代码片段嵌入预设的代码模板中的对应位置上以生成所述目标脚本代码之前,在所述代码模板中标注锚点,所述锚点用于描述代码片段的嵌入位置;
其中,所述脚本代码生成模块具体用于:根据目标脚本编程语言的语言规范,将所述代码片段嵌入经过锚点标注的所述代码模板中以生成所述目标脚本代码。
10.根据权利要求9所述的脚本代码生成装置,其特征在于,所述脚本代码生成模块包括:
控制参数添加单元,用于基于所述目标脚本编程语言的格式控制参数,将所述代码片段的每一行前,加入符合所述目标脚本编程语言的语言规范的缩进控制;
脚本代码生成单元,用于将经加入所述缩进控制的所述代码片段,嵌入至所述代码模板中所述锚点的标注位置以生成所述目标脚本代码。
11.根据权利要求9或10所述的脚本代码生成装置,其特征在于,所述代码模板包括初始化代码、执行代码和结束代码;其中,所述初始化代码和结束代码为模块通用代码,所述初始化代码用于完成初始化动作,所述结束代码用于完成结束动作;所述锚点位于所述代码模板中的执行代码部分。
12.根据权利要求7至10中任一项所述的脚本代码生成装置,其特征在于,所述目标脚本编程语言为Python语言;所述目标脚本代码为Python脚本代码。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1至6中任一项所述的脚本代码生成方法。
14.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至6中任一项所述的脚本代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810889855.2A CN109101231B (zh) | 2018-08-07 | 2018-08-07 | 脚本代码生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810889855.2A CN109101231B (zh) | 2018-08-07 | 2018-08-07 | 脚本代码生成方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101231A true CN109101231A (zh) | 2018-12-28 |
CN109101231B CN109101231B (zh) | 2022-09-23 |
Family
ID=64848638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810889855.2A Active CN109101231B (zh) | 2018-08-07 | 2018-08-07 | 脚本代码生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101231B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083351A (zh) * | 2019-04-22 | 2019-08-02 | 北京百度网讯科技有限公司 | 用于生成代码的方法和装置 |
CN110442333A (zh) * | 2019-07-11 | 2019-11-12 | 北京磨刀刻石科技有限公司 | 基于设计图自动生成程序代码的方法和装置 |
CN110457063A (zh) * | 2019-07-15 | 2019-11-15 | 中国平安人寿保险股份有限公司 | 脚本程序的封装方法及装置、电子设备、可读存储介质 |
CN110888641A (zh) * | 2019-11-15 | 2020-03-17 | 深圳市宏电技术股份有限公司 | 一种脚本自动生成方法、装置、服务器及存储介质 |
CN111221525A (zh) * | 2020-01-09 | 2020-06-02 | 北京金山安全软件有限公司 | 一种脚本代码的生成方法、装置、电子设备及存储介质 |
CN111966356A (zh) * | 2020-08-25 | 2020-11-20 | 珠海格力电器股份有限公司 | 程序代码生成方法、装置、存储介质及电子设备 |
CN112527285A (zh) * | 2020-12-16 | 2021-03-19 | 建信金融科技有限责任公司 | 一种脚本生成方法和装置 |
CN113015956A (zh) * | 2019-10-14 | 2021-06-22 | 尤帕斯公司 | 用于机器人流程自动化的活动目标选择的系统和方法 |
CN113238752A (zh) * | 2021-05-17 | 2021-08-10 | 北京达佳互联信息技术有限公司 | 代码生成方法、装置、电子设备及存储介质 |
CN113407229A (zh) * | 2020-03-17 | 2021-09-17 | 百度在线网络技术(北京)有限公司 | 用于生成离线脚本的方法及装置 |
CN113867699A (zh) * | 2021-10-21 | 2021-12-31 | 中国工商银行股份有限公司 | 业务系统的实现方法、装置、设备、介质及程序产品 |
CN113992342A (zh) * | 2021-09-10 | 2022-01-28 | 南京南瑞信息通信科技有限公司 | 一种无损网络安全监测管控方法、装置及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003038607A1 (en) * | 2001-10-31 | 2003-05-08 | Metacyber.Net | Structures and methods for managing software and documentation |
US20120204161A1 (en) * | 2011-02-09 | 2012-08-09 | Particle Code, Inc. | Automated Code Map Generation for an Application Programming Interface of a Programming Language |
CN103135976A (zh) * | 2011-11-30 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN103164249A (zh) * | 2011-12-15 | 2013-06-19 | Sap股份公司 | 用于脚本语言编译器的扩展机制 |
CN106874019A (zh) * | 2017-03-17 | 2017-06-20 | 微梦创科网络科技(中国)有限公司 | 一种骨架代码的生成方法和骨架代码生成器 |
CN106919434A (zh) * | 2017-03-22 | 2017-07-04 | 恒生电子股份有限公司 | 一种代码生成方法及装置 |
CN107291438A (zh) * | 2016-04-13 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 自动化脚本的生成方法、装置及电子设备 |
-
2018
- 2018-08-07 CN CN201810889855.2A patent/CN109101231B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003038607A1 (en) * | 2001-10-31 | 2003-05-08 | Metacyber.Net | Structures and methods for managing software and documentation |
US20120204161A1 (en) * | 2011-02-09 | 2012-08-09 | Particle Code, Inc. | Automated Code Map Generation for an Application Programming Interface of a Programming Language |
CN103135976A (zh) * | 2011-11-30 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN103164249A (zh) * | 2011-12-15 | 2013-06-19 | Sap股份公司 | 用于脚本语言编译器的扩展机制 |
CN107291438A (zh) * | 2016-04-13 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 自动化脚本的生成方法、装置及电子设备 |
CN106874019A (zh) * | 2017-03-17 | 2017-06-20 | 微梦创科网络科技(中国)有限公司 | 一种骨架代码的生成方法和骨架代码生成器 |
CN106919434A (zh) * | 2017-03-22 | 2017-07-04 | 恒生电子股份有限公司 | 一种代码生成方法及装置 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083351A (zh) * | 2019-04-22 | 2019-08-02 | 北京百度网讯科技有限公司 | 用于生成代码的方法和装置 |
CN110442333A (zh) * | 2019-07-11 | 2019-11-12 | 北京磨刀刻石科技有限公司 | 基于设计图自动生成程序代码的方法和装置 |
CN110457063A (zh) * | 2019-07-15 | 2019-11-15 | 中国平安人寿保险股份有限公司 | 脚本程序的封装方法及装置、电子设备、可读存储介质 |
CN110457063B (zh) * | 2019-07-15 | 2024-04-16 | 中国平安人寿保险股份有限公司 | 脚本程序的封装方法及装置、电子设备、可读存储介质 |
CN113015956B (zh) * | 2019-10-14 | 2022-02-18 | 尤帕斯公司 | 用于机器人流程自动化的活动目标选择的系统和方法 |
CN113015956A (zh) * | 2019-10-14 | 2021-06-22 | 尤帕斯公司 | 用于机器人流程自动化的活动目标选择的系统和方法 |
CN110888641A (zh) * | 2019-11-15 | 2020-03-17 | 深圳市宏电技术股份有限公司 | 一种脚本自动生成方法、装置、服务器及存储介质 |
CN110888641B (zh) * | 2019-11-15 | 2024-04-05 | 深圳市宏电技术股份有限公司 | 一种脚本自动生成方法、装置、服务器及存储介质 |
CN111221525A (zh) * | 2020-01-09 | 2020-06-02 | 北京金山安全软件有限公司 | 一种脚本代码的生成方法、装置、电子设备及存储介质 |
CN113407229A (zh) * | 2020-03-17 | 2021-09-17 | 百度在线网络技术(北京)有限公司 | 用于生成离线脚本的方法及装置 |
CN113407229B (zh) * | 2020-03-17 | 2024-05-14 | 百度在线网络技术(北京)有限公司 | 用于生成离线脚本的方法及装置 |
CN111966356A (zh) * | 2020-08-25 | 2020-11-20 | 珠海格力电器股份有限公司 | 程序代码生成方法、装置、存储介质及电子设备 |
CN112527285A (zh) * | 2020-12-16 | 2021-03-19 | 建信金融科技有限责任公司 | 一种脚本生成方法和装置 |
CN112527285B (zh) * | 2020-12-16 | 2024-07-16 | 建信金融科技有限责任公司 | 一种脚本生成方法和装置 |
CN113238752A (zh) * | 2021-05-17 | 2021-08-10 | 北京达佳互联信息技术有限公司 | 代码生成方法、装置、电子设备及存储介质 |
CN113992342A (zh) * | 2021-09-10 | 2022-01-28 | 南京南瑞信息通信科技有限公司 | 一种无损网络安全监测管控方法、装置及系统 |
CN113867699A (zh) * | 2021-10-21 | 2021-12-31 | 中国工商银行股份有限公司 | 业务系统的实现方法、装置、设备、介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN109101231B (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101231A (zh) | 脚本代码生成方法、装置、计算机设备和存储介质 | |
CN106919434B (zh) | 一种代码生成方法及装置 | |
US7987087B2 (en) | Method and system for improved software localization | |
CN102929600B (zh) | 基于elf的监控系统版本识别方法 | |
CN110968294B (zh) | 一种业务领域模型建立系统及方法 | |
CN105607923A (zh) | 一种跨平台的航空电子系统配置数据生成与恢复方法 | |
JP2017535887A (ja) | コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置 | |
CN104133676A (zh) | 一种基于脚本的功能执行方法和设备 | |
CN108153721B (zh) | 一种在Word文件嵌入图表的自动生成方法 | |
KR101061994B1 (ko) | 공연 관리 시스템 | |
CN108459846A (zh) | 软件云定制方法及平台 | |
CN107220043A (zh) | 一种使用wpf界面生成报表的方法及报表引擎 | |
CN113919158A (zh) | 一种用于飞行控制面板的仿真方法、装置及存储介质 | |
CN111967274B (zh) | 标签转换处理方法、装置、电子设备及可读存储介质 | |
CN108536660A (zh) | 一种自定义报表的生成方法及终端 | |
CN103559350A (zh) | 车辆的载荷文件处理方法和装置 | |
CN107977201A (zh) | 一种综合监控hmi自动生成方法 | |
CN104077225A (zh) | 基于JavaScript的脚本调试方法和脚本调试装置 | |
CN106843862A (zh) | 一种Swing界面自动构成的方法 | |
CN113887175B (zh) | 一种电子病历编辑器及其调用方法 | |
CN114911466B (zh) | 一种采集端数据质量控制系统 | |
CN113867714A (zh) | 一种适配多语言的自动代码生成方法 | |
CN107203503A (zh) | 一种应用于svg界面的实时监视表格的方法 | |
CN104780148A (zh) | 服务器、终端、文档在线操作的系统和方法 | |
JP2005327192A (ja) | ハードウエア設計システムおよびその方法 |
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 |