CN118092932A - 脚本编译方法、装置、存储介质以及终端 - Google Patents
脚本编译方法、装置、存储介质以及终端 Download PDFInfo
- Publication number
- CN118092932A CN118092932A CN202410234042.5A CN202410234042A CN118092932A CN 118092932 A CN118092932 A CN 118092932A CN 202410234042 A CN202410234042 A CN 202410234042A CN 118092932 A CN118092932 A CN 118092932A
- Authority
- CN
- China
- Prior art keywords
- script
- target
- expression
- compiling
- compilable
- 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
- 238000013515 script Methods 0.000 title claims abstract description 278
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000014509 gene expression Effects 0.000 claims abstract description 172
- 230000006870 function Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本说明书实施例公开了一种脚本编译方法、装置、存储介质以及终端,获取目标脚本中的至少一个目标表达式,目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,标准代码段基于预设编程语言编写;编译可编译脚本得到目标脚本对应的编译结果。由于自然语言是人与人之间的交互语言,编程语言是人机交互的语言,那么用户使用自然语言编写脚本表达式时,编写门槛较低;进一步地,将包括自然语言的表达式因子转化为编程语言对应的代码段,这样可以直接对包括标准代码段的可编译脚本进行编译。
Description
技术领域
本说明书实施例涉及计算机技术领域,尤其涉及一种脚本编译方法、装置、存储介质以及终端。
背景技术
脚本是一种用于自动化执行特定任务的计算机编程语言。它通过一系列的指令和命令来操作计算机系统和软件,以便完成各种任务。这些指令通常以文本形式存储,并可以在需要时被计算机解释和执行。配置人员通过配置脚本中的表达式,可以减少繁琐的重复性工作,并能够更加高效地处理复杂的任务。目前脚本需要基于按照计算机语言习惯进行配置,这对配置人员的计算机语言能力有一定要求,导致脚本的使用门槛较高,因此需要一种更简便的脚本编译方法,使得配置人员可以更简单地进行脚本配置。
发明内容
本说明书实施例提供一种脚本编译方法、装置、存储介质以及终端,可以解决相关技术中脚本配置困难、配置效率低的技术问题。
第一方面,本说明书实施例提供一种脚本编译方法,该方法包括:
获取目标脚本中的至少一个目标表达式,所述目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;
确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到所述目标脚本对应的可编译脚本,所述标准代码段基于预设编程语言编写;
编译所述可编译脚本得到所述目标脚本对应的编译结果。
第二方面,本说明书实施例提供一种脚本编译装置,该装置包括:
脚本获取模块,用于获取目标脚本中的至少一个目标表达式,所述目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;
因子替换模块,用于确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到所述目标脚本对应的可编译脚本,所述标准代码段基于预设编程语言编写;
脚本编译模块,用于编译所述可编译脚本得到所述目标脚本对应的编译结果。
第三方面,本说明书实施例提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机或处理器上运行时,使得所述计算机或所述处理器执行上述的方法的步骤。
第四方面,本说明书实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法的步骤。
第五方面,本说明书实施例提供一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序适于由处理器加载并执行上述的方法的步骤。
本说明书一些实施例提供的技术方案带来的有益效果至少包括:
本说明书实施例提供一种脚本编译方法,获取目标脚本中的至少一个目标表达式,目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,标准代码段基于预设编程语言编写;编译可编译脚本得到目标脚本对应的编译结果。由于自然语言是人与人之间的交互语言,编程语言是人机交互的语言,那么用户使用自然语言编写脚本表达式时,编写门槛较低,不需要较强的计算机能力,有助于提升用户的脚本编写效率;进一步地,将包括自然语言的表达式因子转化为编程语言对应的代码段,这样可以直接对包括标准代码段的可编译脚本进行编译,避免开发人员对自然语言脚本的理解偏差导致的配置错误,整体提升了脚本配置流程的便捷性和编译效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的一种脚本编译方法的示例性系统架构图;
图2为本说明书实施例提供的一种脚本编译方法的流程示意图;
图3为本说明书实施例提供的一种脚本编译方法中的脚本内容示意图;
图4为本说明书实施例提供的一种脚本编译方法的流程示意图;
图5为本说明书实施例提供的一种脚本编译装置的结构框图;
图6为本说明书实施例提供的一种终端的结构示意图。
具体实施方式
为使得本说明书实施例的特征和优点能够更加的明显和易懂,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而非全部实施例。基于本说明书中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书实施例保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书实施例相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本说明书实施例的一些方面相一致的装置和方法的例子。
在计算机中,任何代码最终都要被“翻译”成二进制的形式才能执行。有的编程语言,如C/C++、Pascal、Go语言、汇编等,必须在程序运行之前将所有代码都翻译成二进制形式,也就是生成可执行文件,这个过程也叫做编译(Compile),这样的编程语言叫做编译型语言,完成编译过程的软件叫做编译器(Compiler)。而有的编程语言,如Shell、JavaScript、Python、PHP等,程序运行后会即时翻译,翻译完一部分执行一部分,不用等到所有代码都翻译完才运行,也就不需要生成任何可执行文件,这个过程叫做解释,这样的编程语言叫做解释型语言或者脚本语言(Script),完成解释过程的软件叫做解释器。编译型语言的优点是执行速度快、对硬件要求低、保密性好,适合开发操作系统、大型应用程序、数据库等。而脚本语言的优点是使用灵活、部署容易、跨平台性好,非常适合Web开发以及小工具的制作。
在计算机领域的脚本,指的是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。脚本可以视作一种“轻量级”的程序,计算机在执行脚本时,实际上是执行脚本内容中的一连串操作。脚本可以用于自动化执行特定任务,它通过一系列的指令和命令来操作计算机系统和软件,以便完成各种任务。配置人员通过配置脚本中的表达式,可以减少繁琐的重复性工作,并能够更加高效地处理复杂的任务,脚本还可以简化程序的部署和维护过程,增加代码的可读性和可维护性,因此,脚本在计算机编程中扮演着重要的角色,能够极大地提高开发和管理的效率。
由于脚本需要被计算机编译并执行,因此脚本需要基于按照计算机语言习惯进行配置,例如常见的JAVA编程语言、GO语言、JavaScript语言等等,这对脚本配置人员的计算机语言能力有一定要求,导致脚本的使用门槛较高。
因此本说明书实施例提供一种脚本编译方法,获取目标脚本中的至少一个目标表达式,目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,标准代码段基于预设编程语言编写;编译可编译脚本得到目标脚本对应的编译结果,以解决上述脚本配置困难、配置效率低的技术问题。
请参阅图1,图1为本说明书实施例提供的一种脚本编译方法的示例性系统架构图。
如图1所示,系统架构可以包括终端101、网络102和服务器103。网络102用于在终端101和服务器103之间提供通信链路的介质。网络102可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(Wireless-Fidelity,Wi-Fi)通信链路或微波通信链路等。
终端101可以通过网络102与服务器103交互,以接收来自服务器103的消息或向服务器103发送消息,或者终端101可以通过网络102与服务器103交互,进而接收其他用户向服务器103发送的消息或者数据。终端101可以是硬件,也可以是软件。当终端101为硬件时,可以是各种电子设备,包括但不限于智能手表、智能手机、平板电脑、膝上型便携式计算机和台式计算机等。当终端101为软件时,可以是安装在上述所列举的电子设备中,其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。
在本说明书实施例中,首先,终端101获取目标脚本中的至少一个目标表达式,目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;进一步地,终端101可以确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,标准代码段基于预设编程语言编写;最终,终端101编译可编译脚本得到目标脚本对应的编译结果。
服务器103可以是提供各种服务的业务服务器。需要说明的是,服务器103可以是硬件,也可以是软件。当服务器103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器103为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
或者,该系统架构还可以不包括服务器103,换言之,服务器103可以为本说明书实施例中可选的设备,即本说明书实施例提供的方法可以应用于仅包括终端101的系统结构中,本说明书实施例对此不做限定。
应理解,图1中的终端、网络以及服务器的数目仅是示意性的,根据实现需要,可以是任意数量的终端、网络以及服务器。
请参阅图2,图2为本说明书实施例提供的一种脚本编译方法的流程示意图。本说明书实施例的执行主体可以是执行脚本编译的终端,也可以是执行脚本编译方法的终端中的处理器,还可以是执行脚本编译方法的终端中的脚本编译服务。为方便描述,下面以执行主体是终端中的处理器为例,介绍脚本编译方法的具体执行过程。
如图2所示,脚本编译方法至少可以包括:
S202、获取目标脚本中的至少一个目标表达式,目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子。
可选地,由于计算机执行的脚本一般使用编程语言编写,因此脚本对非计算机专业的运营人员有使用门槛,这就使得在实际需求场景中,当运营人员存在新需求时,运营人员根据需求编写需求文档,将需求文档交给开发人员,开发人员根据需求文档编写代码,以实现运营人员提出的需求。然而这个过程中,由于运营人员在编写需求文档时使用常规文本语言的表述,也即按照自然语言(Natural language)的表达形式来描述需求,自然语言是指一种自然地随文化演化的语言,例如,汉语、英语等,自然语言是人类交流和思维的主要工具。而开发人员编写代码时则需要按照自己对需求文档的理解,将需求通过计算机程序语言转化出来,那么需求文档与代码实现的实际含义之间就可能会存在偏差,从而导致最终开发的代码配置错误,无法准确解决需求。
可选地,脚本与需求之间出现的配置差异,主要原因是自然语言与编程语言之间没有规定好的匹配规则,同一个自然语言词汇,在运营人员和开发人员看来可能会对应不同的编程代码段,那么为了消除自然语言与编程语言之间的匹配差异,可以对运营人员会使用到的自然语言词汇,预先定义其对应的标准代码段,例如金融计价场景下,会用于计算的“份额”、“份额发生额”、“市值”等金融数据类型,每个自然语言词汇都有在编程语言中对应的标准代码段,代码段中定义计算机使用这些数据时需要访问的数据来源、数据类型等等,比如“份额”对应的代码段为:
!!com.alipay.fcpriceclcn.core.model.expclcn.param.fund.FundCummulatePara mModel{
key:份额,
serviceId:FUNDCORE_ACCUMULATE_AMOUNT}。
这样运营人员可以直接使用自然语言词汇作为脚本中表达式内的表达式因子,当脚本编译时,将表达式因子替换为对应的标准代码段然后对代码进行编译,这就简化了运营人员的脚本编写成本,提高脚本编译的准确性和效率。
在本说明书实施例中,用户在需要编译脚本时,基于自然语言表达形式的自然语言词汇作为表达式因子,在脚本中输入包括多个表达式因子的多个目标表达式,得到目标脚本,例如请参阅图3,图3为本说明书实施例提供的一种脚本编译方法中的脚本内容示意图。如图3所示,编写“上期份额”的计算表达式时,“上期份额”的目标表达式具体为“上期份额="($份额-$份额发生额)+($未结转收益份额余额-未结转收益份额发生额+折算在途份额余额-折算在途份额发生额"”,其中“份额”、“份额发生额”等都是表达式因子,其他表达式和表达式因子同理。当脚本能够由运营人员自己配置,那么脚本的配置会更准确的贴合需求,使得脚本配置更快捷准确。进一步地,终端编译脚本时,首先获取目标脚本中的至少一个目标表达式,便于后续对目标表达式中的表达式因子进行转化。
在另一种可行的实施方式中,基于自然语言处理技术的高速发展,自然语言处理技术是计算机对自然语言进行处理和理解的技术,运营人员编写脚本时,还可以直接输入一段非表达式形式的自然语言文本,自然语言文本中描述运营人员需要使用的表达式的信息和表达式因子的信息,终端基于自然语言处理(NLP)解析和理解输入的中文脚本,对中文脚本进行包括但不限于分词、词性标注、语法分析和语义推理等的处理流程,分析出其中隐含的表达式,然后根据解析出的表达式来转化为代码段,实现编译。非表达式形式的自然语言文本对于用户来说,输入难度更低,进一步减轻了用户的脚本使用负担。
可选地,考虑到可转化为标准代码段的表达式因子都是规定好的,那么用户在手动编辑的时候,根据用户编辑目标脚本时输入的自然语言字符,确定包括自然语言字符的至少一个可选表达式因子,在人机交互界面在,显示可选表达式因子对应的枚举选项列表,此时用户可以在所有可选表达式因子中选择自己需要使用的目标表达式因子,终端响应于用户针对枚举选项列表中目标表达式因子的选择操作,将自然语言字符替换为目标表达式因子,通过选择选项来代替用户的手动输入,减少用户手动输入带来的错别字、漏字等文本误差。
S204、确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,标准代码段基于预设编程语言编写。
可选地,用户编写脚本时使用的表达式因子都预先定义了对应的代码段,那么确定各表达式因子对应的基于预设编程语言编写的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,在此过程中,不再需要开发人员专门对自然语言词汇的表达式因子进行理解和转化,然后重新编写代码段,简化脚本的配置编译流程。预设编程语言可以有多种,包括但不限于JAVA编程语言、GO语言、JavaScript语言等,根据实际场景中的开发语言进行选择,本说明书实施例对此不做具体限定。
S206、编译可编译脚本得到目标脚本对应的编译结果。
可选地,在可编译脚本中,表达式已经被转化为多个代码段,编译可编译脚本时,计算机根据脚本中各个代码段之间的计算规则进行各因子数值的计算,从而得到目标脚本对应的编译结果。
在本说明书实施例中,提供一种脚本编译方法,获取目标脚本中的至少一个目标表达式,目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,标准代码段基于预设编程语言编写;编译可编译脚本得到目标脚本对应的编译结果。由于自然语言是人与人之间的交互语言,编程语言是人机交互的语言,那么用户使用自然语言编写脚本表达式时,编写门槛较低,不需要较强的计算机能力,有助于提升用户的脚本编写效率;进一步地,将包括自然语言的表达式因子转化为编程语言对应的代码段,这样可以直接对包括标准代码段的可编译脚本进行编译,避免开发人员对自然语言脚本的理解偏差导致的配置错误,整体提升了脚本配置流程的便捷性和编译效率。
请参阅图4,图4为本说明书实施例提供的一种脚本编译方法的流程示意图。
如图4所示,脚本编译方法至少可以包括:
S402、响应于针对目标脚本的编译请求,判断目标脚本中的所有字符是否符合预设编程语言的编译规则。
可选地,用户在编辑脚本时,由于使用的是自然语言词汇,因此对于一些符号、标点,可能也是基于自然语言的语种来使用的,但计算机只能对符合编程语言的编译规则的符号进行编译,那么对于脚本中不符合编译规则的字符需要进行转换,以使得脚本能够成功编译。那么终端响应于针对目标脚本的编译请求,首先判断目标脚本中的所有字符是否符合预设编程语言的编译规则。
S404、若存在至少一个目标字符不符合编译规则,则确定各目标字符对应的标准字符,标准字符为符合编译规则的字符。
可选地,根据用户使用的字符和标准字符之间可以预先制定对应关系,例如,用户使用中文,标准字符为英文,那么中文字符和英文字符中同一字符的不同格式之间存在唯一的对应关系,根据对应关系,可以在存在至少一个目标字符不符合编译规则时,确定各目标字符对应的符合编译规则的标准字符,实现字符纠正,以增强脚本编译过程中的容错能力,能够在出现错误时给出恰当的提示或纠正。
S406、将每个目标字符替换为每个目标字符各自对应的标准字符,得到所有字符符合编译规则的目标脚本。
可选地,将每个目标字符替换为每个目标字符各自对应的标准字符,这样目标脚本中的字符均为符合编译规则的字符之后,目标脚本能够成功编译,而不会由于字符的错误导致编译报错。
S408、识别出目标脚本中的注释信息以及去除注释信息。
可选地,对目标脚本中的错误字符、语法进行纠错之后,还可以去除目标脚本中的注释,注释内容是用于解释的并不参与脚本的编译,因此为了减少后续对表达式因子进行识别替换时的文本解析复杂度,本说明书实施例中,先识别出目标脚本中的注释信息以及去除注释信息。注释信息使用特定的格式来编辑,例如“//”或者“/.../”等,那么识别注释信息时,可以通过识别注释信息的格式,来确定脚本中哪些内容是注释内容,准确的清除注释信息。
S410、获取目标脚本中的至少一个目标表达式,目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子。
S412、确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,标准代码段基于预设编程语言编写。
关于步骤S410-S412,请参阅步骤S202-S204中的详细记载,此处不再赘述。
S414、基于编程语言中的精确运算类型对可编译脚本进行编译运算,得到目标脚本对应的编译结果;精确运算类型用于保持可编译脚本中调用的运算数据的原有精度。
可选地,在一些场景下,脚本编译可能涉及到数值的计算,特别是金融场景下的脚本,大量表达式都涉及多个数值之间的各种数学计算,包括但不限于各种金额计算,因此,在金融场景下需要特别注意数值计算结果的精度。常规的脚本如果直接放在执行引擎中执行,其默认会采用float类型、double类型来进行数值运算,但float类型、double类型在运算时可能会出现精度丢失问题。精度丢失的问题是当float和double类型的数据在执行二进制浮点运算的时候发生的,浮点数是计算机用来表示小数的一种数据类型,采用科学计数法,而float和double类型在计算浮点数时会自动取舍,导致最终结果并不是完全精确的结果。在涉及货币计算的场景,就适合使用编程语言中的精确运算类型,例如BigDecimal类型,来进行可编译脚本中的运算,精确运算类型也即BigDecimal类可以保持可编译脚本中调用的运算数据的原有精度。
在本说明书实施例中,以预设编程语言为Java为例,使用Java8自带的Nashorn作为JS执行引擎,其会将脚本编译成Java代码后进行执行,并且支持多样的与Java代码之间的互动,因此可以在脚本中直接使用BigDecimal的所有方法,编译可编译脚本,得到目标脚本对应的编译结果。
S416、基于编译结果存储目标脚本对应的可复用函数,可复用函数用于在脚本编写时对编译过的目标表达式进行调用。
可选地,在得到目标脚本的编译结果之后,还可以将编译结果存储为目标脚本对应的可复用函数,可复用函数用于在脚本编写时对编译过的目标表达式进行调用,这样用户在之后若要使用编译过的脚本表达式,可直接调用而不需要再次配置表达式因子和公式,实现对脚本中表达式的一次编译多次调用,提升后续脚本的使用效率。
在本说明书实施例中,提供一种脚本编译方法,若存在至少一个目标字符不符合编译规则,确定各目标字符对应的符合编译规则的标准字符,实现字符纠正,以增强脚本编译过程中的容错能力,能够在出现错误时给出恰当的提示或纠正;去除脚本中的注释,减少后续对文本解析的复杂度;基于编程语言中的精确运算类型对可编译脚本进行编译运算,得到目标脚本对应的编译结果,保持可编译脚本中调用的运算数据的原有精度;基于编译结果存储目标脚本对应的可复用函数,可复用函数用于在脚本编写时对编译过的目标表达式进行调用,实现对脚本中表达式的一次编译多次调用,提升后续脚本的使用效率。
请参阅图5,图5为本说明书实施例提供的一种脚本编译装置的结构框图。如图5所示,脚本编译装置500包括:
脚本获取模块510,用于获取目标脚本中的至少一个目标表达式,目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;
因子替换模块520,用于确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,标准代码段基于预设编程语言编写;
脚本编译模块530,用于编译可编译脚本得到目标脚本对应的编译结果。
可选地,脚本编译装置500还包括:脚本编写模块,用于根据用户编辑目标脚本时输入的自然语言字符,确定包括自然语言字符的至少一个可选表达式因子;显示可选表达式因子对应的枚举选项列表,并响应于用户针对枚举选项列表中目标表达式因子的选择操作,将自然语言字符替换为目标表达式因子。
可选地,脚本编译模块530,还用于基于编程语言中的精确运算类型对可编译脚本进行编译运算,得到目标脚本对应的编译结果;精确运算类型用于保持可编译脚本中调用的运算数据的原有精度。
可选地,脚本编译装置500还包括:复用函数存储模块,用于基于编译结果存储目标脚本对应的可复用函数,可复用函数用于在脚本编写时对编译过的目标表达式进行调用。
可选地,脚本编译装置500还包括:语法校正模块,用于响应于针对目标脚本的编译请求,判断目标脚本中的所有字符是否符合预设编程语言的编译规则;若存在至少一个目标字符不符合编译规则,则确定各目标字符对应的标准字符,标准字符为符合编译规则的字符;将每个目标字符替换为每个目标字符各自对应的标准字符,得到所有字符符合编译规则的目标脚本。
可选地,脚本编译装置500还包括:注释去除模块,用于响应于针对目标脚本的编译请求,识别出目标脚本中的注释信息以及去除注释信息。
在本说明书实施例中,提供一种脚本编译装置,其中,脚本获取模块,用于获取目标脚本中的至少一个目标表达式,目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;因子替换模块,用于确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,标准代码段基于预设编程语言编写;脚本编译模块,用于编译可编译脚本得到目标脚本对应的编译结果。由于自然语言是人与人之间的交互语言,编程语言是人机交互的语言,那么用户使用自然语言编写脚本表达式时,编写门槛较低,不需要较强的计算机能力,有助于提升用户的脚本编写效率;进一步地,将包括自然语言的表达式因子转化为编程语言对应的代码段,这样可以直接对包括标准代码段的可编译脚本进行编译,避免开发人员对自然语言脚本的理解偏差导致的配置错误,整体提升了脚本配置流程的便捷性和编译效率。
本说明书实施例提供一种包含指令的计算机程序产品,当计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述实施例中任一项的方法的步骤。
本说明书实施例还提供了一种计算机存储介质,计算机存储介质可以存储有多条指令,指令适于由处理器加载并执行如上述实施例中的任一项的方法的步骤。
请参见图6,图6为本说明书实施例提供的一种终端的结构示意图。如图6所示,终端600可以包括:至少一个终端处理器601,至少一个网络接口604,用户接口603,存储器605,至少一个通信总线602。
其中,通信总线602用于实现这些组件之间的连接通信。
其中,用户接口603可以包括显示屏(Display)、摄像头(Camera),可选用户接口603还可以包括标准的有线接口、无线接口。
其中,网络接口604可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,终端处理器601可以包括一个或者多个处理核心。终端处理器601利用各种接口和线路连接整个终端600内的各个部分,通过运行或执行存储在存储器605内的指令、程序、代码集或指令集,以及调用存储在存储器605内的数据,执行终端600的各种功能和处理数据。可选的,终端处理器601可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。终端处理器601可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到终端处理器601中,单独通过一块芯片进行实现。
其中,存储器605可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选的,该存储器605包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器605可用于存储指令、程序、代码、代码集或指令集。存储器605可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器605可选的还可以是至少一个位于远离前述终端处理器601的存储装置。如图6所示,作为一种计算机存储介质的存储器605中可以包括操作系统、网络通信模块、用户接口模块以及脚本编译程序。
在图6所示的终端600中,用户接口603主要用于为用户提供输入的接口,获取用户输入的数据;而终端处理器601可以用于调用存储器605中存储的脚本编译程序,并具体执行以下操作:
获取目标脚本中的至少一个目标表达式,目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;
确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到目标脚本对应的可编译脚本,标准代码段基于预设编程语言编写;
编译可编译脚本得到目标脚本对应的编译结果。
在一些实施例中,终端处理器601在执行获取目标脚本中的至少一个目标表达式之前,还具体执行以下步骤:根据用户编辑目标脚本时输入的自然语言字符,确定包括自然语言字符的至少一个可选表达式因子;显示可选表达式因子对应的枚举选项列表,并响应于用户针对枚举选项列表中目标表达式因子的选择操作,将自然语言字符替换为目标表达式因子。
在一些实施例中,终端处理器601在执行编译可编译脚本得到目标脚本对应的编译结果时,具体执行以下步骤:基于编程语言中的精确运算类型对可编译脚本进行编译运算,得到目标脚本对应的编译结果;精确运算类型用于保持可编译脚本中调用的运算数据的原有精度。
在一些实施例中,终端处理器601在执行编译可编译脚本得到目标脚本对应的编译结果之后,还具体执行以下步骤:基于编译结果存储目标脚本对应的可复用函数,可复用函数用于在脚本编写时对编译过的目标表达式进行调用。
在一些实施例中,终端处理器601在执行获取目标脚本中的至少一个目标表达式之前,还具体执行以下步骤:响应于针对目标脚本的编译请求,判断目标脚本中的所有字符是否符合预设编程语言的编译规则;若存在至少一个目标字符不符合编译规则,则确定各目标字符对应的标准字符,标准字符为符合编译规则的字符;将每个目标字符替换为每个目标字符各自对应的标准字符,得到所有字符符合编译规则的目标脚本。
在一些实施例中,终端处理器601在执行获取目标脚本中的至少一个目标表达式之前,还具体执行以下步骤:响应于针对目标脚本的编译请求,识别出目标脚本中的注释信息以及去除注释信息。
在本说明书所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本说明书实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者通过上述计算机可读存储介质进行传输。上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DigitalSubscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(DigitalVersatile Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
另外,还需要说明的是,本说明书实施例所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本说明书实施例所提供的一种脚本编译方法、装置、存储介质以及终端的描述,对于本领域的技术人员,依据本说明书实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本说明书实施例的限制。
Claims (10)
1.一种脚本编译方法,所述方法包括:
获取目标脚本中的至少一个目标表达式,所述目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;
确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到所述目标脚本对应的可编译脚本,所述标准代码段基于预设编程语言编写;
编译所述可编译脚本得到所述目标脚本对应的编译结果。
2.根据权利要求1所述的方法,所述获取目标脚本中的至少一个目标表达式之前,还包括:
根据用户编辑目标脚本时输入的自然语言字符,确定包括所述自然语言字符的至少一个可选表达式因子;
显示所述可选表达式因子对应的枚举选项列表,并响应于所述用户针对所述枚举选项列表中目标表达式因子的选择操作,将所述自然语言字符替换为所述目标表达式因子。
3.根据权利要求1所述的方法,所述编译所述可编译脚本得到所述目标脚本对应的编译结果,包括:
基于所述编程语言中的精确运算类型对所述可编译脚本进行编译运算,得到所述目标脚本对应的编译结果;
所述精确运算类型用于保持所述可编译脚本中调用的运算数据的原有精度。
4.根据权利要求1所述的方法,所述编译所述可编译脚本得到所述目标脚本对应的编译结果之后,还包括:
基于所述编译结果存储所述目标脚本对应的可复用函数,所述可复用函数用于在脚本编写时对编译过的目标表达式进行调用。
5.根据权利要求1所述的方法,所述获取目标脚本中的至少一个目标表达式之前,还包括:
响应于针对目标脚本的编译请求,判断所述目标脚本中的所有字符是否符合所述预设编程语言的编译规则;
若存在至少一个目标字符不符合所述编译规则,则确定各目标字符对应的标准字符,所述标准字符为符合所述编译规则的字符;
将每个目标字符替换为每个目标字符各自对应的标准字符,得到所有字符符合所述编译规则的目标脚本。
6.根据权利要求1所述的方法,所述获取目标脚本中的至少一个目标表达式之前,还包括:
响应于针对目标脚本的编译请求,识别出所述目标脚本中的注释信息以及去除所述注释信息。
7.一种脚本编译装置,所述装置包括:
脚本获取模块,用于获取目标脚本中的至少一个目标表达式,所述目标表达式中包括用户基于自然语言表达形式输入的至少一个表达式因子;
因子替换模块,用于确定各表达式因子对应的标准代码段,将每个表达式因子替换为每个表达式因子各自对应的标准代码段,得到所述目标脚本对应的可编译脚本,所述标准代码段基于预设编程语言编写;
脚本编译模块,用于编译所述可编译脚本得到所述目标脚本对应的编译结果。
8.一种包含指令的计算机程序产品,当所述计算机程序产品在计算机或处理器上运行时,使得所述计算机或所述处理器执行如权利要求1~6任意一项所述方法的步骤。
9.一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~6任意一项的所述方法的步骤。
10.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410234042.5A CN118092932A (zh) | 2024-02-29 | 2024-02-29 | 脚本编译方法、装置、存储介质以及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410234042.5A CN118092932A (zh) | 2024-02-29 | 2024-02-29 | 脚本编译方法、装置、存储介质以及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118092932A true CN118092932A (zh) | 2024-05-28 |
Family
ID=91163032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410234042.5A Pending CN118092932A (zh) | 2024-02-29 | 2024-02-29 | 脚本编译方法、装置、存储介质以及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118092932A (zh) |
-
2024
- 2024-02-29 CN CN202410234042.5A patent/CN118092932A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110554875B (zh) | 代码转换方法及装置、电子设备、存储介质 | |
CN111736840A (zh) | 小程序应用的编译方法、运行方法、存储介质及电子设备 | |
CN110688145B (zh) | Android MVP代码自动生成方法、装置、介质、电子设备 | |
CN107451112B (zh) | 表格工具数据检查方法、装置、终端设备及存储介质 | |
CN111782117B (zh) | 界面的展示方法和装置、存储介质、电子装置 | |
US8839251B2 (en) | Automating sequential cross-application data transfer operations | |
CN108388547A (zh) | 字符串解析方法、装置、设备及计算机可读存储介质 | |
US20220198153A1 (en) | Model training | |
CN107357569A (zh) | 多语言资源文件的统一管理方法及系统、计算机可读存储介质及设备 | |
CN109636619B (zh) | 量化平台的回测方法、装置、电子设备和可读介质 | |
CN116595967A (zh) | 一种基于文本的自然语言规则编写方法及相关装置 | |
US20230153550A1 (en) | Machine Translation Method and Apparatus, Device and Storage Medium | |
CN116755669A (zh) | 一种基于dsl语言操作模型的低代码开发方法和工具 | |
CN118092932A (zh) | 脚本编译方法、装置、存储介质以及终端 | |
CN110737431B (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
CN113885841A (zh) | 脚本生成的方法、装置、电子设备和可读介质 | |
CN107665124A (zh) | 模块化JavaScript文件处理方法、设备和服务器 | |
CN113312900A (zh) | 数据校验的方法和装置 | |
CN113448874A (zh) | 一种单元测试脚本的生成方法及装置 | |
CN112947941A (zh) | 一种添加异常处理代码的方法和装置 | |
CN114816972A (zh) | 着色语言的测试方法、装置、电子设备以及存储介质 | |
CN117075912B (zh) | 用于程序语言转换的方法、编译方法及相关设备 | |
CN111078230A (zh) | 一种代码生成方法和装置 | |
CN112130841B (zh) | Sql开发方法、装置及终端设备 | |
CN116909533B (zh) | 计算机程序语句编辑方法、装置、存储介质及电子设备 |
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 |