CN114594961A - 一种函数表达式实现方法、装置、电子设备及存储介质 - Google Patents

一种函数表达式实现方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114594961A
CN114594961A CN202210215938.XA CN202210215938A CN114594961A CN 114594961 A CN114594961 A CN 114594961A CN 202210215938 A CN202210215938 A CN 202210215938A CN 114594961 A CN114594961 A CN 114594961A
Authority
CN
China
Prior art keywords
function expression
character string
expression character
grammar
compiling
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
Application number
CN202210215938.XA
Other languages
English (en)
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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202210215938.XA priority Critical patent/CN114594961A/zh
Publication of CN114594961A publication Critical patent/CN114594961A/zh
Pending legal-status Critical Current

Links

Images

Classifications

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

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

本发明实施例涉及一种函数表达式实现方法、装置、电子设备及存储介质,方法包括:接收用户输入的函数表达式字符串,对函数表达式字符串进行Java语法校验,在确定函数表达式字符串符合Java语法后,对函数表达式字符串进行编译,并在编译过程中判断函数表达式字符串是否合法,若确定函数表达式字符串合法,得到编译后的函数表达式。如此,在执行函数表达式之前,先基于函数表达式字符串对函数表达式进行语法和合法性校验,可以提前确定函数表达式中的错误,以便及时处理。

Description

一种函数表达式实现方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种函数表达式实现方法、装置、电子设备及存储介质。
背景技术
目前在进行数据同步时,通常采用数据同步平台datax。在数据同步的数据处理流程中,往往涉及到对不同的字段进行处理,datax通常采用新增函数的方式实现对字段的处理。处理流程主要包括:将新增函数注册到 datax中,执行新增函数,在执行过程中对新增函数进行校验。
上述方式中的新增函数在执行的时候才进行校验,使得新增函数的错误只有在执行过程中才会暴露,而无法提前确定。
发明内容
鉴于此,为解决现有技术中的无法提前感知函数中的错误的技术问题,本发明实施例提供一种函数表达式实现方法、装置、电子设备及存储介质。
第一方面,本发明实施例提供一种函数表达式实现方法,包括:
接收用户输入的函数表达式字符串;
对所述函数表达式字符串进行Java语法校验;
在确定所述函数表达式字符串符合Java语法后,对所述函数表达式字符串进行编译,并在编译过程中判断所述函数表达式字符串是否合法;
若确定所述函数表达式字符串合法,得到编译后的函数表达式。
在一个可能的实施方式中,所述对所述函数表达式字符串进行Java语法校验,包括:
将所述函数表达式字符串输入至预设的语法解析器,以由所述语法解析器对所述函数表达式字符串进行Java语法校验。
在一个可能的实施方式中,所述方法还包括:
从所述函数表达式字符串中提取下述一项或几项变量信息:变量名、变量个数、变量字段类型;
所述对所述函数表达式字符串进行编译,并在编译过程中判断所述函数表达式字符串是否合法,包括:
将所述函数表达式字符串以及从所述函数表达式字符串中提取的各项变量信息作为入参输入至预设的动态编译器,以由所述动态编译器对所述函数表达式字符串进行编译,所述动态编译器在对所述函数表达式字符串进行编译的过程中,判断从所述函数表达式字符串中提取的各项变量信息是否合法;
若确定任一项所述变量信息不合法,确定所述函数表达式字符串不合法;若确定每一项所述变量信息均合法,确定所述函数表达式字符串合法。
在一个可能的实施方式中,所述方法还包括:
将所述编译后的函数表达式存储至指定存储介质中;
当接收到对所述编译后的函数表达式的调用命令时,从所述指定存储介质中调用所述函数表达式,以执行所述函数表达式。
在一个可能的实施方式中,所述方法还包括:
若确定所述函数表达式字符串不符合Java语法,则进行语法异常提示,并终止对所述函数表达式字符串的处理。
在一个可能的实施方式中,所述方法还包括:
在确定所述函数表达式字符串不合法后,进行变量异常提示,并终止对所述函数表达式字符串的编译。
第二方面,本申请实施例还提供了一种函数表达式实现装置,包括:
接收模块,用于接收用户输入的函数表达式字符串;
语法校验模块,用于对所述函数表达式字符串进行Java语法校验;
编译模块,用于在确定所述函数表达式字符串符合Java语法后,对所述函数表达式字符串进行编译,并在编译过程中判断所述函数表达式字符串是否合法;
表达式模块,用于若确定所述函数表达式字符串合法,得到编译后的函数表达式。
在一个可能的实施方式中,所述语法校验模块,具体用于:
将所述函数表达式字符串输入至预设的语法解析器,以由所述语法解析器对所述函数表达式字符串进行Java语法校验。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的函数表达式实现程序,以实现第一方面中任一项所述的函数表达式实现方法。
第四方面,本申请实施例还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求第一方面中任一项所述的函数表达式实现方法。
本发明实施例提供的技术方案,接收用户输入的函数表达式字符串,对函数表达式字符串进行Java语法校验,在确定函数表达式字符串符合 Java语法后,对函数表达式字符串进行编译,并在编译过程中判断函数表达式字符串是否合法,若确定函数表达式字符串合法,得到编译后的函数表达式。如此,在执行函数表达式之前,先基于函数表达式字符串对函数表达式进行语法和合法性校验,可以提前确定函数表达式中的错误,以便及时处理。
附图说明
图1为本发明实施例提供的一种函数表达式实现方法的实施例流程图;
图2为本发明实施例提供的另一种函数表达式实现装置的实施例框图。
图3为本发明实施例提供的一种的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图以具体实施例对本发明提供的函数表达式实现方法做进一步的解释说明,实施例并不构成对本发明实施例的限定。
参见图1,为本发明实施例提供的一种函数表达式实现方法的流程图,如图1所示,该方法可以包括如下步骤:
S11.接收用户输入的函数表达式字符串。
本申请实施例提供的函数表达式实现方法可以应用于数据同步场景中对用于进行数据同步的函数表达式的处理。
在本申请实施例中,用户输入的函数表达式字符串可以是现有java函数的函数表达式字符串,也可以是用户自定义函数的函数表达式字符串。比如用户需要使用某个特定功能,数据库原本不支持,用户可以根据数据库的扩展规范去扩展,进而得到用户自定义函数。
作为一个实施例,若用户输入的函数表达式字符串是现有java函数的函数表达式字符串,则在接收用户输入的函数表达式字符串时,可以接收用户输入的函数信息,比如函数名等,然后基于函数信息从预设的函数库中获取对应的函数表达式字符串。
作为另一个实施例,若用户输入的函数表达式字符串是用户自定义函数的函数表达式字符串,则在接收用户输入的函数表达式字符串时,可以接收用户直接输入的函数表达式字符串。
S12.对函数表达式字符串进行Java语法校验。
在本申请实施例中,在接收到函数表达式字符串后,对其进行Java语法校验,以确定函数表达式字符串是否符合Java语法。
作为一个实施例,在对函数表达式字符串进行Java语法校验时,可以将函数表达式字符串输入至预设的语法解析器,以由语法解析器对函数表达式字符串进行Java语法校验。其中,语法解析器可以为Antlr(ANother Tool for Language Recognition),例如Antlr4。
Antlr是一个强大的跨语言语法解析器,Antlr允许用户定义识别字符流的词法规则和用于解释Token流的语法分析规则。然后Antlr将根据用户提供的语法文件自动生成相应的词法/语法分析器。利用生成的词法/语法分析器可以对输入的函数表达式字符串进行语法校验。
进一步的,若通过Java语法校验确定函数表达式字符串符合Java语法,则执行S13。
作为一个实施例,若通过Java语法校验确定函数表达式字符串不符合 Java语法,则可以进行语法异常提示,并终止对函数表达式字符串的处理。通过进行语法异常提示可以使用户及时感知函数表达式存在的语法错误,以便及时处理。
进一步的,作为一个实施例,在进行语法异常提示时,可以提示具体的错误内容,以便用户可以快速对错误语法进行定位。
S13.在确定函数表达式字符串符合Java语法后,对函数表达式字符串进行编译,并在编译过程中判断函数表达式字符串是否合法。
作为一个实施例,在确定函数表达式字符串符合Java语法后,可以从函数表达式字符串中提取变量信息,以基于变量信息来确定函数表达式字符串是否合法。其中,变量信息可以包括下述一项或几项:变量名、变量个数、变量字段类型等。
作为一个实施例,变量信息可以采用Antlr进行提取。
进一步的,在提取到变量信息后,对函数表达式字符串进行编译。在编译时,可以将函数表达式字符串以及从函数表达式字符串中提取的各项变量信息作为入参输入至预设的动态编译器,以由动态编译器对函数表达式字符串进行编译,其中,动态编译器在对函数表达式字符串进行编译的过程中,判断从函数表达式字符串中提取的各项变量信息是否合法,若确定任一项变量信息不合法,则确定函数表达式字符串不合法,若确定每一项变量信息均合法,则确定函数表达式字符串合法。
作为一个实施例,在判断各项变量信息是否合法时,可以分别判断各项变量信息是否为标准格式。针对每项变量信息,若确定该变量信息为标准格式,则确定该变量信息合法,否则,确定该变量信息不合法。比如:函数表达式字符串的变量信息中包含变量名“a>b”,但该变量名的标准格式应该为a1,因此,通过编译可以确定出该变量名不合法。再比如:函数表达式字符串的变量信息中包含变量个数subStr(a,0),但其标准格式应该为subStr(a,0,1),因此,通过编译也可以确定出该变量个数不合法。又比如:函数表达式字符串的变量信息中包含subStr(a,“0”,1),但标准格式应该为subStr(a,0,1),也即其中的第二个参数应该是数值而不能是字符串,所以通过编译可以确定该变量字段类型不合法。
在实际应用中,各变量信息的标准格式可以是预先设置的。
作为一个实施例,动态编译器可以为janino,Janino是一个极小、极快的开源Java编译器。其不仅可以将Java源码文件编译为字节码文件,还可以对一些Java表达式、代码块、类中的文本(class body)或者内存中源文件进行编译,并可以把编译后的字节码直接加载到一个JVM(Java Virtual Machine,Java虚拟机)中直接执行。
S14.若确定函数表达式字符串合法,得到编译后的函数表达式。
在通过编译确定函数表达式字符串合法后,便可以得到通过S13编译后的函数表达式。
作为一个实施例,采用动态编译器编译得到的函数表达式可以直接在 JVM中执行,无需再开发用于实现函数表达式的类函数。因此,在得到编译后的函数表达式之后,便可以输入待执行的数据(比如待同步的数据),然后直接执行编译后的函数表达式,从而得到表达式结果。
作为又一个实施例,在得到编译后的函数表达式后,可以将编译后的函数表达式存储至指定存储介质中,以便后续可以直接调用。具体的,将函数表达式存储至指定存储介质中后,当接收到对该函数表达式的调用命令时,可以直接从指定存储介质中调用该函数表达式,以执行该函数表达式。通过此种方式,可以实现对函数表达式的一次编译多次运行,无需每次执行时,都进行编译,从而节省了时间,提高了函数表达式的执行效率。
进一步的,作为一个实施例,在对函数表达式字符串的编译过程中,若确定函数表达式字符串不合法,则在确定函数表达式字符串不合法后,进行变量异常提示,并终止对表达式字符串的编译。通过变量异常提示可以使用户及时感知函数表达式中存在的错误。
进一步的,在进行变量异常提示时,可以提示具体存在错误的变量信息,从而使得用户可以基于提示快速定位到错误的变量信息。
本申请实施例提供的一种函数表达式实现方式,接收用户输入的函数表达式字符串,对函数表达式字符串进行Java语法校验,在确定函数表达式字符串符合Java语法后,对函数表达式字符串进行编译,并在编译过程中判断函数表达式字符串是否合法,若确定函数表达式字符串合法,得到编译后的函数表达式。如此,在执行函数表达式之前,先基于函数表达式字符串对函数表达式进行语法和合法性校验,从而可以提前确定函数表达式中存在的错误,以便及时处理。
与前述函数表达式实现方法的实施例相对应,本发明还提供函数表达式装置的实施例。
参见图2,为本发明实施例提供的一种函数表达式装置的实施例框图。如图2所示,该装置包括:
接收模块201,用于接收用户输入的函数表达式字符串;
语法校验模块202,用于对函数表达式字符串进行Java语法校验;
编译模块203,用于在确定函数表达式字符串符合Java语法后,对函数表达式字符串进行编译,并在编译过程中判断函数表达式字符串是否合法;
表达式模块204,用于若确定函数表达式字符串合法,得到编译后的函数表达式。
在一个可能的实施方式中,语法校验模块202,具体用于:
将函数表达式字符串输入至预设的语法解析器,以由语法解析器对函数表达式字符串进行Java语法校验。
在一个可能的实施方式中,上述装置还可以包括(图2中未示出):
提取模块,用于从函数表达式字符串中提取下述一项或几项变量信息:变量名、变量个数、变量字段类型;
编译模块203,具体用于:
将函数表达式字符串以及从函数表达式字符串中提取的各项变量信息作为入参输入至预设的动态编译器,以由动态编译器对函数表达式字符串进行编译,动态编译器在对函数表达式字符串进行编译的过程中,判断从函数表达式字符串中提取的各项变量信息是否合法;
若确定任一项变量信息不合法,确定函数表达式字符串不合法;若确定每一项变量信息均合法,确定函数表达式字符串合法。
在一个可能的实施方式中,上述装置还可以包括(图2中未示出):
存储模块,用于将编译后的函数表达式存储至指定存储介质中,当接收到对编译后的函数表达式的调用命令时,从指定存储介质中调用函数表达式,以执行函数表达式。
在一个可能的实施方式中,上述装置还可以包括(图2中未示出):
第一提示模块,用于若确定函数表达式字符串不符合Java语法,则进行语法异常提示,并终止对函数表达式字符串的处理。
在一个可能的实施方式中,上述装置还可以包括(图2中未示出):
第二提示模块,用于在确定函数表达式字符串不合法后,进行变量异常提示,并终止对函数表达式字符串的编译。
图3为本发明实施例提供的一种的电子设备的结构示意图,图3所示的电子设备300包括:至少一个处理器301、存储器302、至少一个网络接口304和其他用户接口303。电子设备300中的各个组件通过总线系统305 耦合在一起。可理解,总线系统305用于实现这些组件之间的连接通信。总线系统305除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统305。
其中,用户接口303可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器302可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器 (ProgrammableROM,PROM)、可擦除可编程只读存储器(ErasablePROM, EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccessMemory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM 可用,例如静态随机存取存储器(StaticRAM,SRAM)、动态随机存取存储器(DynamicRAM,DRAM)、同步动态随机存取存储器(SynchronousDRAM, SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleDataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(SynchlinkDRAM, SLDRAM)和直接内存总线随机存取存储器(DirectRambusRAM,DRRAM)。本文描述的存储器302旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器302存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统3021和应用程序3022。
其中,操作系统3021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序 3022,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser) 等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序3022中。
在本发明实施例中,通过调用存储器302存储的程序或指令,具体的,可以是应用程序3022中存储的程序或指令,处理器301用于执行各方法实施例所提供的方法步骤,例如包括:
接收用户输入的函数表达式字符串;
对函数表达式字符串进行Java语法校验;
在确定函数表达式字符串符合Java语法后,对函数表达式字符串进行编译,并在编译过程中判断函数表达式字符串是否合法;
若确定函数表达式字符串合法,得到编译后的函数表达式。
上述本发明实施例揭示的方法可以应用于处理器301中,或者由处理器301实现。处理器301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器301可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器302,处理器301读取存储器302 中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)、数字信号处理器(DigitalSignalProcessing,DSP)、数字信号处理设备(DSPDevice, DSPD)、可编程逻辑设备(ProgrammableLogicDevice,PLD)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本实施例提供的电子设备可以是如图3中所示的电子设备,可执行如图1中函数表达式实现方法的所有步骤,进而实现图1所示函数表达式实现方法的技术效果,具体请参照图1相关描述,为简洁描述,在此不作赘述。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的函数表达式实现方法。
所述处理器用于执行存储器中存储的函数表达式实现程序,以实现以下在电子设备侧执行的函数表达式实现方法的步骤:
接收用户输入的函数表达式字符串;
对函数表达式字符串进行Java语法校验;
在确定函数表达式字符串符合Java语法后,对函数表达式字符串进行编译,并在编译过程中判断函数表达式字符串是否合法;
若确定函数表达式字符串合法,得到编译后的函数表达式。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种函数表达式实现方法,其特征在于,包括:
接收用户输入的函数表达式字符串;
对所述函数表达式字符串进行Java语法校验;
在确定所述函数表达式字符串符合Java语法后,对所述函数表达式字符串进行编译,并在编译过程中判断所述函数表达式字符串是否合法;
若确定所述函数表达式字符串合法,得到编译后的函数表达式。
2.根据权利要求1所述的方法,其特征在于,所述对所述函数表达式字符串进行Java语法校验,包括:
将所述函数表达式字符串输入至预设的语法解析器,以由所述语法解析器对所述函数表达式字符串进行Java语法校验。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述函数表达式字符串中提取下述一项或几项变量信息:变量名、变量个数、变量字段类型;
所述对所述函数表达式字符串进行编译,并在编译过程中判断所述函数表达式字符串是否合法,包括:
将所述函数表达式字符串以及从所述函数表达式字符串中提取的各项变量信息作为入参输入至预设的动态编译器,以由所述动态编译器对所述函数表达式字符串进行编译,所述动态编译器在对所述函数表达式字符串进行编译的过程中,判断从所述函数表达式字符串中提取的各项变量信息是否合法;
若确定任一项所述变量信息不合法,确定所述函数表达式字符串不合法;若确定每一项所述变量信息均合法,确定所述函数表达式字符串合法。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述编译后的函数表达式存储至指定存储介质中;
当接收到对所述编译后的函数表达式的调用命令时,从所述指定存储介质中调用所述函数表达式,以执行所述函数表达式。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若确定所述函数表达式字符串不符合Java语法,则进行语法异常提示,并终止对所述函数表达式字符串的处理。
6.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:
在确定所述函数表达式字符串不合法后,进行变量异常提示,并终止对所述函数表达式字符串的编译。
7.一种函数表达式实现装置,其特征在于,包括:
接收模块,用于接收用户输入的函数表达式字符串;
语法校验模块,用于对所述函数表达式字符串进行Java语法校验;
编译模块,用于在确定所述函数表达式字符串符合Java语法后,对所述函数表达式字符串进行编译,并在编译过程中判断所述函数表达式字符串是否合法;
表达式模块,用于若确定所述函数表达式字符串合法,得到编译后的函数表达式。
8.根据权利要求7所述的装置,其特征在于,所述语法校验模块,具体用于:
将所述函数表达式字符串输入至预设的语法解析器,以由所述语法解析器对所述函数表达式字符串进行Java语法校验。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的函数表达式实现程序,以实现权利要求1~6中任一项所述的函数表达式实现方法。
10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~6中任一项所述的函数表达式实现方法。
CN202210215938.XA 2022-03-07 2022-03-07 一种函数表达式实现方法、装置、电子设备及存储介质 Pending CN114594961A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210215938.XA CN114594961A (zh) 2022-03-07 2022-03-07 一种函数表达式实现方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210215938.XA CN114594961A (zh) 2022-03-07 2022-03-07 一种函数表达式实现方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114594961A true CN114594961A (zh) 2022-06-07

Family

ID=81807301

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210215938.XA Pending CN114594961A (zh) 2022-03-07 2022-03-07 一种函数表达式实现方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114594961A (zh)

Similar Documents

Publication Publication Date Title
Erlingsson The inlined reference monitor approach to security policy enforcement
US7614044B2 (en) Attempting runtime retranslation of unresolvable code
US7281237B2 (en) Run-time verification of annotated software code
WO2020173128A1 (zh) 软件开发工具包的生成方法、装置及终端设备
CN107526625B (zh) 一种基于字节码检查的Java智能合约安全检测方法
US8141035B2 (en) Method for accessing internal states of objects in object oriented programming
KR101823016B1 (ko) 외부 코드 인증을 통한 웹 브라우징 오버헤드들의 감소
CN107643893B (zh) 一种程序检测方法及装置
CN103177199A (zh) 网页应用代码保护方法及系统和执行的提速方法及系统
WO2020177429A1 (zh) 在应用中嵌入代码的方法、装置及电子设备
US6898786B1 (en) Javascript interpreter engine written in Java
CN112612502A (zh) 补丁生成方法、装置、设备及存储介质
US20060041873A1 (en) Computer system and method for verifying functional equivalence
CN110673852A (zh) 一种基于编译器前端实现控制流平坦的方法、系统及设备
CN110333872B (zh) 一种应用的处理方法、装置、设备和介质
Antonino et al. Specification is law: Safe creation and upgrade of ethereum smart contracts
US7428729B2 (en) Methods, systems, and computer program products for integrating legacy applications into a platform-independent environment
JP2003186675A (ja) Javaコンピューティング環境におけるタイプチェック
CN114594961A (zh) 一种函数表达式实现方法、装置、电子设备及存储介质
CN113419734B (zh) 应用程序加固的方法、装置及电子设备
CN111796832B (zh) 热补丁文件生成方法、装置、设备及存储介质
CN114266020A (zh) 一种软件保护方法、装置、设备及可读存储介质
CN112540755A (zh) 一种基于前端的组件处理方法、装置、设备及存储介质
Paltoglou et al. Automated refactoring of client-side JavaScript code to ES6 modules
CN111399842A (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