CN113495731B - 代码执行方法、装置、电子设备及存储介质 - Google Patents
代码执行方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113495731B CN113495731B CN202010197821.4A CN202010197821A CN113495731B CN 113495731 B CN113495731 B CN 113495731B CN 202010197821 A CN202010197821 A CN 202010197821A CN 113495731 B CN113495731 B CN 113495731B
- Authority
- CN
- China
- Prior art keywords
- execution
- code
- preset
- target
- language
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Abstract
本申请实施例公开了一种代码执行方法、装置、电子设备及存储介质,所述代码执行方法包括:确定代码执行中的预设执行代码;将所述预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行;获取所述目标执行代码在所述目标语言执行环境执行后的执行结果,以将其作为所述预设执行代码在当前语言执行环境中的执行结果。通过这种方式,能够使得掌握当前语言的工程师能够在无需掌握目标语言的情况下使用由目标语言通过嵌入预设执行代码的方式调用目标语言执行环境中实现的代码。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种代码执行方法、装置、电子设备及存储介质。
背景技术
随着人工智能和机器学习的快速发展,在各行各业的智能化趋势已经势不可挡,而在各种应用中融合智能化功能成为当前技术发展的一种趋势。然而,对于实现应用的前端工程师而言,采用前端编程语言在应用中实现各种智能化功能存在一定的困难,而如果采用其它编程语言实现智能化功能,又需要前端工程师掌握其它编程语言,这对前端工程师是一大挑战。
发明内容
本申请实施例提供一种代码执行方法、装置、电子设备及计算机可读存储介质,以便实现在当前语言代码执行环境中直接使用目标语言执行环境中实现的功能。
第一方面,本申请实施例中提供了一种代码执行方法,包括:确定代码执行中的预设执行代码;将所述预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行;获取所述目标执行代码在所述目标语言执行环境执行后的执行结果,以将其作为所述预设执行代码在当前语言执行环境中的执行结果。
进一步地,确定代码执行中的预设执行代码,包括:确定代码执行中的预设起始代码以及预设结束代码;将所述预设起始代码和所述预设结束代码之间的语句确定为所述预设执行代码。
进一步地,所述方法还包括:在执行到所述预设起始代码后,启动与所述目标语言执行环境通信的会话链路,以及在所述目标语言执行环境中执行所述目标执行代码的代码执行体。
进一步地,所述方法还包括:在执行到所述预设起始代码后,回收所述会话链路以及所述代码执行体。
进一步地,将所述预设执行代码转换成目标语言执行环境中的目标执行代码,包括:将所述预设执行代码中调用的预设元素映射成目标元素;所述目标元素为在所述目标语言执行环境中实现的元素;将所述预设执行代码转换成调用所述目标元素的所述目标执行代码。
进一步地,将所述预设执行代码转换成目标语言执行环境中的目标执行代码,包括:将所述预设执行代码中的预设数据类型或预设结构转换成在所述目标语言执行环境中支持的数据类型或结构。
进一步地,获取所述目标执行代码在所述目标语言执行环境执行后的执行结果,以将其作为所述预设执行代码在当前语言执行环境中的执行结果,包括:接收所述目标语言执行环境返回的执行结果;在所述执行结果中包括预设数据类型或预设结构时,将所述预设数据类型或预设结构转换成在所述当前语言代码环境能够支持的数据类型或结构。
进一步地,所述当前语言执行环境为JavaScript语言执行环境,所述目标语言执行环境为python语言执行环境。
第二方面,本申请实施例中提供了一种页面展示方法,包括:获取生成页面的代码;在所述代码执行过程中,将所述代码中的预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行;获取所述目标执行代码在所述目标语言执行环境执行后的执行结果;根据所述代码在所述页面中展示所述执行结果。
进一步地,将所述代码中的预设执行代码转换成目标语言执行环境中的目标执行代码,包括:将所述预设执行代码中调用的预设元素映射成目标元素;所述目标元素为在所述目标语言执行环境中实现的元素;将所述预设执行代码转换成调用所述目标元素的所述目标执行代码。
进一步地,将所述代码中的预设执行代码转换成目标语言执行环境中的目标执行代码,包括:将所述预设执行代码中的预设数据类型或预设结构转换成在所述目标语言执行环境中支持的数据类型或结构。
进一步地,获取所述目标执行代码在所述目标语言执行环境执行后的执行结果,包括:接收所述目标语言执行环境返回的执行结果;在所述执行结果中包括预设数据类型或预设结构时,将所述预设数据类型或预设结构转换成在所述当前语言代码环境能够支持的数据类型或结构。
进一步地,所述当前语言执行环境为JavaScript语言执行环境,所述目标语言执行环境为python语言执行环境。
第三方面,本申请实施例中提供了一种代码执行装置,包括:第一确定模块,被配置为确定代码执行中的预设执行代码;第一转换模块,被配置为将所述预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行;第一获取模块,被配置为获取所述目标执行代码在所述目标语言执行环境执行后的执行结果,以将其作为所述预设执行代码在当前语言执行环境中的执行结果。
第四方面,本申请实施例中提供了一种页面展示装置,包括:第二获取模块,被配置为获取生成页面的代码;第二转换模块,被配置为在所述代码执行过程中,将所述代码中的预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行;第三获取模块,被配置为获取所述目标执行代码在所述目标语言执行环境执行后的执行结果;展示模块,被配置为根据所述代码在所述页面中展示所述执行结果。
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,上述装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持上述装置执行上述对应方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。上述装置还可以包括通信接口,用于上述装置与其它设备或通信网络通信。
第五方面,本申请实施例提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述任一方面所述的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,用于存储上述任一装置所用的计算机指令,其包含用于执行上述任一方面所述方法所涉及的计算机指令。
本申请实施例提供的技术方案可以包括以下有益效果:
本申请实施例可以在代码中嵌入预设执行代码,而该代码的执行过程中遇到预设执行代码后,可以自动将该预设执行代码转换成目标语言执行环境中的目标执行代码,并且通过在目标语言执行环境中执行该目标执行代码获得执行结果,该执行结果可以作为预设执行代码在当前语言执行环境中的执行结果。通过这种方式,能够实现当前语言和目标语言之间的无缝衔接,使得掌握当前语言的工程师能够在无需掌握目标语言的情况下使用由目标语言通过嵌入预设执行代码的方式调用目标语言执行环境中实现的代码,例如掌握JavaScript语言的前端工程师可以在前端页面使用Python语言实现的智能化功能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本申请的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本申请一实施方式的代码执行方法的流程图;
图2示出根据本申请一实施方式的执行代码的框架流程示意图;
图3示出根据本申请一实施方式在JavaScript中对python的功能进行操作的系统框架结构示意图;
图4示出根据本申请一实施方式的代页面展示方法的流程图;
图5示出根据本申请一实施方式的代码执行装置的结构框图;
图6是适于用来实现根据本申请一实施方式的代码执行方法和/或页面展示方法的电子设备的结构示意图。
具体实施方式
下文中,将参考附图详细描述本申请的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本申请中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其它特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
前端编程语言如JavaScript的运行环境如Node.js是前端工程师常用和必备的语言和工具,也在很多时候是前端工程师唯一掌握和精通的语言工具。而一些具有大数据处理能力的语言比如Python语言凭借其数学分析和数据统计生态、以及Tensorflow和Pytorch等知名的深度学习框架,成为目前人工智能最热门的和必不可少的语言。同时,Python语言在处理大数据,进行视觉图像的处理上面也相对于JS有巨大的优势。
然而,当前的现状是对于前端工程师,学习一门全新的语言成本非常高;同时,即使对Python语言很熟悉,但是想要在JavaScript的项目中集成Python能力(比如在一个成熟的前端项目中,需要在某一环节使用Python语言实现的OpenCV功能处理一下图像的场景)难度也是极大的。
因此,本申请实施例基于上述技术问题,提出了一种代码执行方法,该代码执行方法包括:确定代码执行中的预设执行代码;将所述预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行;获取所述目标执行代码在所述目标语言执行环境执行后的执行结果,以将其作为所述预设执行代码在当前语言执行环境中的执行结果。。
该方法中,可以在代码中嵌入预设执行代码,而该代码的执行过程中遇到预设执行代码后,可以自动将该预设执行代码转换成目标语言执行环境中的目标执行代码,并且通过在目标语言执行环境中执行该目标执行代码获得执行结果,该执行结果可以作为预设执行代码在当前语言执行环境中的执行结果。通过这种方式,能够实现当前语言和目标语言之间的无缝衔接,使得掌握当前语言的工程师能够在无需掌握目标语言的情况下使用由目标语言通过嵌入预设执行代码的方式调用目标语言执行环境中实现的代码,例如掌握JavaScript语言的前端工程师可以在前端页面使用Python语言实现的智能化功能。
下面通过具体实施例详细介绍本申请实施例的细节。
图1示出根据本申请一实施方式的代码执行方法的流程图。如图1所示,该代码执行方法包括以下步骤:
在步骤S101中,确定代码执行中的预设执行代码。
在步骤S102中,将预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行。
在步骤S103中,获取目标执行代码在目标语言执行环境执行后的执行结果,以将其作为预设执行代码在当前语言执行环境中的执行结果。
本实施例中,该代码执行方法可以在安装有当前语言执行环境和目标语言执行环境的电子设备上执行。当前语言执行环境可以是支持当前语言的代码执行环境,例如Node.js为JavaScript语言的一种执行环境。在当前语言执行环境中执行的代码是利用当前语言编写的、用于实现某个或某些功能的代码,例如使用JavaScript语言编写的页面展示代码。工程师利用当前语言编写完成代码后,在需要执行该代码时,可以将该代码加载至当前语言执行环境中执行,例如将JavaScript代码加载至安装有Node.js的浏览器中,逐条执行该JavaScript代码中的语句,并在浏览器的输出界面输出该JavaScript代码中设计的前端页面内容。
预设执行代码可以为当前语言编写的代码中的部分或者全部代码。该预设执行代码可以包括一个或多个代码语句。该预设执行代码在当前语言执行环境中并不实际执行,而是通过调用已实现的映射库中的预设映射类和/或预设转换接口等,将预设执行代码转换成目标执行代码后,发送到目标语言执行环境中执行,并且在目标语言执行环境中的执行结果会返回给当前语言执行环境,进而该执行结果可以作为预设执行代码在当前语言执行环境中的执行结果。通过这种方式,可以支持当前语言执行环境中对目标语言实现的库(具有独立功能的代码集)、类(面向对象语言中的引用数据类型,可以封装属性和方法)、方法、属性等的使用,也就是说,已经使用目标语言实现的功能可以直接在当前语言执行环境中使用,而无需掌握当前语言的工程师重新使用当前语言编码实现该功能,并且能够解决由于当前语言存在短板而无法使用当前语言实现某些功能的问题。
图2示出根据本申请一实施方式的执行代码的框架流程示意图。如图2所示,将当前语言编写的代码加载到当前语言执行环境中,并开始执行。在该代码在当前语言执行环境的执行过程中,如果该代码中嵌入有预设执行代码,则在当前语言执行环境中启动一会话链路,并且启动目标语言执行环境中的代码执行体;之后该预设执行代码在当前语言执行环境中将被转换成目标执行代码,并且可以通过该会话链路将该目标执行代码发送到目标语言执行环境中的代码执行体,代码执行体执行该目标执行代码,并且在执行完成后将执行结果返回给会话链路,会话链路则将该执行结果作为预设执行代码的执行结果。
在一些实施例中,为了支持在当前语言执行环境中对目标语言实现的库(具有独立功能的代码集)、类(面向对象语言中的引用数据类型,可以封装属性和方法)、方法、属性等的使用,可以预先实现当前语言执行环境中的一个映射库,该映射库的作用包括但不限于将预设执行代码转换成目标执行代码,该映射库的实现方式可以包括多种,例如可以在映射库中实现预设映射类,并在预设映射类中定义预设执行代码与目标执行代码之间的转换。此外,映射库中还可以实现对于一些基本数据类型、简单对象、常用目标语言类库的引用代码等进行直接转换的预设转换接口。
在本实施例的一个可选实现方式中,步骤S101,即确定代码执行中的预设执行代码的步骤,进一步包括以下步骤:确定代码执行中的预设起始代码以及预设结束代码;将预设起始代码和预设结束代码之间的语句确定为预设执行代码。
该可选的实现方式中,在需要使用目标语言实现的功能时,可以在当前语言编写的代码中嵌入一段预设执行代码,该预设执行代码可以通过预设起始代码和预设结束代码来界定,也即预设起始代码和预设结束代码之间的代码段可以确定为预设执行代码。因此在执行当前语言编写的代码过程中,执行到该预设起始代码时,可以通过将该预设起始代码开始的代码转换成目标执行代码,并将目标执行代码发送到目标语言执行环境中执行的方式获得该预设执行代码的执行结果。需要说明的是,在预设起始代码至预设结束代码之间包括多个代码语句时,可以逐句进行转换,也可以将预设起始代码和预设结束代码之间的所有代码一起转换,具体取决于映射库中定义的转换方式。
下面以JavaScript为当前语言举例说明。
可以通过在JavaScript源代码中定义预置映射类的预设作用域scope的方式界定预设执行代码,该预设作用域可以是局部作用域,其限定了使用目标语言实现的功能的预设执行代码,该预设作用域内的代码执行时的上下文均在该预设作用域内可见,该预设作用域外不可见。因此,可以将通过使用目标语言实现的功能预设执行代码放在该预设作用域内执行,并且在执行到该预设作用域的起始语句时,可以确定执行到了预设执行代码,而在执行到该预设作用域的结束语句时,可以确定预设执行代码执行完毕。此外,由于预设执行代码被限定在对应的预设作用域scope中,该预设执行代码相关的上下文信息均在该预设作用域内可见,而该预设作用域之外不可见,因此代码执行过程中可能涉及到的非法代码会在该预设作用域内消除掉,不会影响到外部的系统环境,因此保证了代码执行过程的安全性。
在本实施例的一个可选实现方式中,该方法进一步还包括以下步骤:在执行到预设起始代码后,启动与目标语言执行环境通信的会话链路,以及在目标语言执行环境中执行目标执行代码的代码执行体。
该可选的实现方式中,为了能够在预设执行代码转换成目标执行代码之后,通过在目标语言执行环境中执行目标执行代码,可以在执行到预设起始代码之后,启动与目标语言执行环境进行通信的会话链路,并且还可以启动在目标语言执行环境中执行该目标执行代码的代码执行体。
在一些实施例中,会话链路可以理解为用于连接当前语言执行环境与目标语执行环境中的代码执行体的通信链路。例如,一个会话链路可以是JavaScript执行环境中的一个session对象;代码执行体可以是python中的一个ipython kernel,该ipython kernel启动之后用于执行目标语言源代码。
通过这种方式,可以为该预设执行代码启动专用的会话链路和代码执行体,并且可以使得同一预设作用域内的所有代码也即预设执行代码中的所有语句均对应同一个会话链接和同一个代码执行体,该预设作用域内所有语句所涉及的所有对象、变量、进程、内存等均在该预设作用域内有效。在当前语言编写的代码中存在多个预设作用域(多段预设执行代码)时,则可以建立多个会话链路以及多个代码执行体。当然,可以理解的是,两个或两个以上的预设作用域也可以使用同一个会话链路和代码执行体,具体根据实际需要而定,在此不做限制。
在本实施例的一个可选实现方式中,该方法进一步还包括以下步骤:在执行到预设起始代码后,回收会话链路以及代码执行体。
该可选的实现方式中,由于会话链路和代码执行体均对应于一段预设代码执行体,因此该预设执行代码内的所有语句执行完成后,可以回收对应的会话链路以及代码执行体。可以理解的是,回收会话链路的方式可以是直接终止该会话链路,还可以是将该会话链路回收至缓存池中,以便下次直接使用,而无需重新再创建。同理,代码执行体的回收也可以是直接终止该代码执行体,或者将该代码执行体放在缓存池中,以便下次直接使用,而无需重新创建。在回收会话链路和代码执行体时,其上下文需要清理,以便释放该会话链路和代码执行体所占用的CPU、内存等资源。
在本实施例的一个可选实现方式中,步骤S102,即将预设执行代码转换成目标语言执行环境中的目标执行代码的步骤,进一步包括以下步骤:将预设执行代码中调用的预设元素映射成目标元素;目标元素为在目标语言执行环境中实现的元素;将预设执行代码转换成调用目标元素的目标执行代码。
该可选的实现方式中,预置映射类可以是在上述映射库中预先实现的,该预置映射类所实现的功能可以是在当前语言执行环境中支持使用当前语言调用目标语言实现的库、类、方法、属性等。用户在编写当前语言代码时,可以通过调用预置映射类的方法来实现对目标语言实现的库、类、方法、属性等的调用。预置映射类可以作为一种代理类,将用户在当前语言源代码中对于目标语言实现的库、类、方法、属性等的操作发送至目标语言执行环境中执行。
预设元素可以为在预设映射类中定义的库、类、方法、属性等,但是预设元素可以在当前语言执行环境中并不存在实现代码,也就是说,在预设映射类中定义了预设元素,但是该预设元素所要实现的功能对应的代码并不存在,而对该预设元素的执行操作则需要通过在目标语言执行环境中执行目标元素来实现。目标元素可以包括但不限于使用目标语言实现的库、类、方法、属性等,并且该目标元素对应有目标语言实现的代码,或者说该目标元素为在目标语言执行环境中已有的库、类、方法、属性等。在使用当前语言编写代码的过程中,可以在预设执行代码中创建预置映射类的对象,并且可以通过当前语言调用该对象的任何方法和/或属性(也即上述预设元素)等,而对该对象的方法和/或属性的操作语句将通过预置映射类中的定义映射到目标语言实现的方法和/或属性的操作语句上,进而通过在目标语言执行环境中执行该目标语言实现的方法和/或属性的操作语句来实现上述操作。
因此,在当前语言编写的代码的执行过程中,当前执行到的代码为对预置映射类中预设元素的调用语句时,可以根据预置映射类中所定义的预置映射关系确定预设元素对应的目标元素。目标元素为目标语言实现的库、类、方法、属性等,例如预设元素为预置映射类中定义的方法A,则目标元素可以为目标语言代码实现的方法B,且该方法B的源代码已知,或者该方法B可以为目标语言执行环境中已有库中的方法,此时可以将该方法B的源代码发送至目标语言执行环境中执行,或者向目标语言执行环境发送调用执行方法B的指令。
在一些实施例中,在预置映射类的实现代码中,可以预先定义一个或多个预设元素,并且建立预设元素与目标元素之间的映射关系。而该一个或多个预设元素可以对应于目标语言编写的一个或多个目标元素,且该目标元素的源代码已知,或者该目标元素为在目标语言执行环境中已有类库中的对象、方法、属性等。
举例说明,假如当前语言源代码为JavaScript语句“const cv2=Python.import('cv2')”,Python为预置映射类,在执行该语句的过程中,则可以创建一个对象cv2,该对象cv2在预置映射类中定义为一个方法,并且其对应于Python语言编写的cv2方法,则“Python.import('cv2')”可以被直接映射为Python语句“import cv2”,利用预先建立的会话链接将该“import cv2”传送至预先建立的ipython kernel中执行。
在本实施例的一个可选实现方式中,步骤S102,即将预设执行代码转换成目标语言执行环境中的目标执行代码的步骤,进一步包括以下步骤:将预设执行代码中的预设数据类型或预设结构转换成在目标语言执行环境中支持的数据类型或结构。
该可选的实现方式中,还可以在映射库中实现一些预设转换接口,这些预设转换接口用于对当前语言执行环境中预设数据类型和/或预设数据结构进行转换,使得转换后能够被目标语言执行环境所支持。预设数据类型可以包括但不限于基本数据类型,预设数据结构可以包括但不限于简单对象、常用库等。例如,JavaScript中的基本数据类型包括6种,比如number类型、string类型等;而python中的基本数据类型包括10种,因此可以在映射库中实现JavaScript中6种基本数据类型与python中10中基本数据类型之间进行转化。简单对象可以是一些较为固定的对象,例如JavaScript中的键值对(key,value)对象,可以在映射库中实现简单对象在当前语言执行环境和目标语言执行环境之间的对应转化;python中的常用交互类库如numpy、pandas、TensorFlow等,可以实现将这些常用交互类库的传参转换成目标语言执行环境可以识别的参数、以及将这些常用交互类库的执行结果转化为当前语言执行环境可识别的结果等。
在一些实施例中,还可以提供用户自定义接口,用于扩充映射库中对于复杂对象的转换功能。如前面,对于常用的交互类库可以在映射库中预先实现转换功能,而对于一些不常用的类库,可以预留接口,用户自定义不常用的类库的转换功能,并且在用户使用该不常用的类库时,可以调用用户自定义的转换功能进行转换。
在本实施例的一个可选实现方式中,当前语言执行环境为JavaScript语言执行环境,目标语言源代码执行环境为python语言执行环境。
在一些实施例中,代码执行体可以为python语言执行环境中的ipython kernel。ipython kernel具有两种通信通道,即Router/Dealer通信通道和PUB/SUB通信通道,Router/Dealer通信通道是异步模式,通过Router/Dealer通信通道ipython kernel可以从外部接收数据,PUB/SUB通信通道是一种消息发布订阅模式,通过PUB/SUB通信通道ipythonkernel可以向外部订阅者发送消息。会话链路通过ipython kernel的Router/Dealer通信通道将目标语言源代码传送给ipython kernel,而ipython kernel在目标语言源代码执行完成之后,执行结果通过ipython kernel的PUB/SUB通信通道通过会话链路返回。本申请实施例,可以借用ipython kernel的通信能力与JavaScript的执行环境直接进行交互,可以实时的获得代码状态和需要获得的信息。
下面通过JavaScript的执行环境中对python实现的功能进行操作的应用场景,详细说明本申请实施例的实现流程。
图3示出了根据本申请一实施方式在JavaScript中对python的功能进行操作的系统框架结构示意图。如图3所示,预先在JavaScript中实现映射库python-node,python-node可以为用户在JavaScript中提供一个名为Python的JavaScript类,该Python即为上文中提到的预设映射类。用户可以通过多个JavaScript方法使用该Python类。例如可以通过install方法将该映射库安装在JavaScript的执行环境Node.js中,然后在使用的时候通过import导入该映射库中该Python类的方法,该Python类对象的方法可以对应于目标语言执行环境下的方法。通过getter方法可以获得该Python类对象的属性,通过setter方法可以对该Python类对象的属性赋值,通过apply方法可以调用该Python类对象的方法。JS-Python为该映射库中实现该python类的库,在JavaScript源代码中用户可以直接使用python的基本操作符(比如‘==’)和流程控制(比如if语句),JS-Python库可以利用JS的代理功能将JavaScript源代码中对于python的操作转换成python语句,然后发送至ipython kernel中执行,而在JavaScript执行环境中并不执行这些语句。
JS-Python库还提供其它功能,比如基本类型解析功能、对象解析功能、常用交互类解析功能和插件解析功能等。基本类型解析功能用于将JavaScript源代码中的基本数据类型转换成python支持的基本数据类型,或者将ipython kernel返回的执行结果中的基本数据类型转换成JavaScript支持的基本数据类型;对象解析功能是将一些简单的对象在JavaScript和python之间进行转化,常用交互类解析功能是将JavaScript源代码中对python中的常用交互类库的使用语句或者传参等转换成python的使用语句或传参,或者将python中的常用交互类库的返回结果转换成JavaScript中能够识别的执行结果等。插件解析功能是在映射库中未实现转化功能,但是可以为用户预留接口,用户通过编码实现对python中复杂对象的转化代码后,将该代码以插件的形式对映射库进行扩充,以便用户可以使用这些插件对复杂对象进行转化。
对于JavaScript源代码中预设映射类建立的每个作用域,在执行该作用域中的语句时,可以建立对应的session(会话链路)以及ipython kernel,还可以维护一session池,用于保持所建立的session。该作用域中还可以维护JavaScript源代码中预设元素与python中目标元素的对应关系,例如可以通过标识符对应,因此可以维护一标识符池,用于保存预设元素的标识和目标元素的标识之间的对应关系;还可以维护语句池,用于存储JavaScript语句与python语句之间的对应关系。
Ipython kernel运行在支持python语言的执行环境中,用于执行python源代码,并且ipython kernel可以通过自身的通信能力与会话链路进行通信,ipython kernel具有Router/Dealer通信通道和PUB/SUB通信通道,分别用于从会话链路接收第二源代码,和将第二源代码的执行结果返回给会话链路。
在一些实施例中,还可以在当前语言环境中提供可视化接口,以便编程人员通过该可视化接口能够获知可以在当前语言环境中使用的目标语言环境中的功能。在编程过程中,编程人员可以调出该可视化接口,该可视化接口可以以组件的方式展示目标语言环境中已经实现并且能够在当前语言环境中使用的各种功能,并且编程人员还可以通过点击组件或者拖动组件的方式直接获得该可使用功能对应的预设执行代码,并将该预设执行代码加入当前编辑的代码中。通过这种方式,能够方便编程人员在当前语言执行环境中快速使用目标语言执行环境中已实现的功能。
图4示出根据本申请一实施方式的页面展示方法的流程图。如图4所示,该页面展示方法包括以下步骤:
在步骤S401中,获取生成页面的代码。
在步骤S402中,在代码执行过程中,将代码中的预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行。
在步骤S403中,获取目标执行代码在目标语言执行环境执行后的执行结果。
在步骤S404中,根据代码在页面中展示执行结果。
本实施例中,该页面展示方法在安装有当前语言执行环境以及目标语言执行环境的电子设备上执行。当前语言可以是用于web页面开发的编程语言,例如JavaScript语言。通过当前语言编写生成页面的代码之后,可以在支持当前语言执行环境的页面展示应用中加载并执行该代码。随着智能化技术的发展,在web页面中需要越来越多的融入智能化应用,例如在一些服饰、化妆品的出售页面上,可以融入在线试装或者在线试妆等智能化功能,但是由于大多数的智能化应用已被其它语言所实现,例如python,为了能够节省前端页面开发工程师的工作量,以及减少前端页面开发工程师的难度,可以通过本申请上述方法,在生成web页面的代码中加入预设执行代码,该预设执行代码可以被转换成目标执行代码,以便使用目标执行代码调用目标语言执行环境中已经实现的功能,通过这种方式可以在页面中融入一些智能化功能。
在生成页面的代码的执行过程中,在当前执行的操作语句为对目标语言实现的对象进行操作的预设执行代码时,例如通过当前语言源代码调用目标语言实现的库中的接口等时,可以将该预设执行代码映射成目标执行代码,该目标执行代码可以包括目标语言编写的代码语句,并且可以通过在目标语言执行环境中执行目标执行代码来实现上述操作语句的功能。例如,预设执行代码调用执行预设映射类对象的方法A,而该方法A在预设映射类中定义为需要被映射至目标语言实现的方法B上,则可以将该预设执行代码映射成包括在目标语言执行环境中调用执行方法B的目标执行代码。
目标执行代码可以被发送至目标语言执行环境中执行,目标执行代码在目标语言执行环境中的执行结果可以返回给当前语言执行环境,并且该执行结果可以作为预设执行代码的执行结果。该执行结果可以按照代码中的设计展示在利用上述代码生成的该页面中。
本实施例的其它细节可以参加上述代码执行方法中的相应描述,在此不再赘述。
在本实施例的一个可选实现方式中,步骤S402中将代码中的预设执行代码转换成目标语言执行环境中的目标执行代码的步骤,进一步可以包括:将预设执行代码中调用的预设元素映射成目标元素;目标元素为在目标语言执行环境中实现的元素;将预设执行代码转换成调用目标元素的目标执行代码。
该可选的实现方式中,如在代码执行方法中的描述,可以使用当前语言预先实现映射库,并在映射库中提供预设映射类,该预设映射类可以用于提供预设执行代码与目标执行代码的映射。在执行到预设执行代码后,可以通过预置映射类中实现的方法将预设元素映射成目标元素,该目标元素为目标语言实现的类、库、方法、属性等。通过上述方式,在预设映射类库中可以仅给出预设元素的定义,而不给出具体的实现代码,在代码执行过程中,则将预设元素映射到目标语言执行环境中的目标元素,并在目标语言执行环境中执行目标元素的实现代码得到执行结果,并将该执行结果作为当前语言执行环境中预设元素的执行结果,实现在当前语言执行环境中调用目标语言执行环境中已经实现的功能。
在本实施例的一个可选实现方式中,步骤S402中将代码中的预设执行代码转换成目标语言执行环境中的目标执行代码的步骤,进一步可以包括:将预设执行代码中的预设数据类型或预设结构转换成在目标语言执行环境中支持的数据类型或结构。
该可选的实现方式中,预设执行代码中涉及的方法的调用、变量的赋值等操作实际上并不在当前语言执行环境中执行,而是被转换成目标执行语言之后,发送至目标语言执行环境中执行,目标执行代码在目标语言执行环境中的执行结果也即该预设执行代码的执行结果。预设执行代码中除了包括预设元素的操作代码之外,还可以包括一些预设数据类型或预设结构,而由于预设执行代码是使用当前语言编写而成的,因此这些预设数据类型和预设结构可能只在当前语言执行环境下支持,而目标语言执行环境中并不支持。因此这种情况下,还需要将预设执行代码中的预设数据类型或预设结构转换成目标语言执行环境中支持的数据类型和结构。具体细节可以参见上述代码执行方法中的描述,在此不再赘述。
在本实施例的一个可选实现方式中,步骤S402中将代码中的预设执行代码转换成目标语言执行环境中的目标执行代码的步骤,进一步可以包括:接收目标语言执行环境返回的执行结果;在执行结果中包括预设数据类型或预设结构时,将预设数据类型或预设结构转换成在当前语言代码环境能够支持的数据类型或结构。
该可选实现方式中,由于目标语言执行环境中的执行结果可能是当前语言执行环境所不支持或者说是不能识别的,比如可能是当前语言执行环境不能识别的数据类型或结构,则可以先将该执行结果中的数据类型或结构按照预设转换接口进行转换之后,作为预设执行代码的执行结果。具体细节可以参见上述代码执行方法中的描述,在此不做限制。
在本实施例的一个可选实现方式中,当前语言执行环境为JavaScript语言执行环境,目标语言源代码执行环境为python语言执行环境。
上述可选实现方式中的其它细节还可以参加上述对代码执行方法中的描述,在此不再赘述。
下述为本申请装置实施例,可以用于执行本申请方法实施例。
图5示出根据本申请一实施方式的代码执行装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,该代码执行装置包括:
第一确定模块501,被配置为确定代码执行中的预设执行代码。
第一转换模块502,被配置为将预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行。
第一获取模块503,被配置为获取目标执行代码在目标语言执行环境执行后的执行结果,以将其作为预设执行代码在当前语言执行环境中的执行结果。
在本实施例的一个可选实现方式中,第一确定模块,包括:第一确定子模块,被配置为确定代码执行中的预设起始代码以及预设结束代码;第二确定子模块,被配置为将预设起始代码和预设结束代码之间的语句确定为预设执行代码。
在本实施例的一个可选实现方式中,装置还包括:启动模块,被配置为在执行到预设起始代码后,启动与目标语言执行环境通信的会话链路,以及在目标语言执行环境中执行目标执行代码的代码执行体。
在本实施例的一个可选实现方式中,装置还包括:回收模块,被配置为在执行到预设起始代码后,回收会话链路以及代码执行体。
在本实施例的一个可选实现方式中,第一转换模块,包括:第一映射子模块,被配置为将预设执行代码中调用的预设元素映射成目标元素;目标元素为在目标语言执行环境中实现的元素;第一转换子模块,被配置为将预设执行代码转换成调用目标元素的目标执行代码。
在本实施例的一个可选实现方式中,第一转换模块,包括:第二转换子模块,被配置为将预设执行代码中的预设数据类型或预设结构转换成在目标语言执行环境中支持的数据类型或结构。
在本实施例的一个可选实现方式中,第一获取模块,包括:第一接收子模块,被配置为接收目标语言执行环境返回的执行结果;第三转换子模块,被配置为在执行结果中包括预设数据类型或预设结构时,将预设数据类型或预设结构转换成在当前语言代码环境能够支持的数据类型或结构。
在本实施例的一个可选实现方式中,当前语言执行环境为JavaScript语言执行环境,目标语言执行环境为python语言执行环境。
本实施例中的代码执行装置与上述实施例中的代码执行方法对应一致,具体细节可以参加上述对代码执行方法的描述,在此不再赘述。
根据本申请一实施方式的页面展示装置,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。该页面展示装置包括:
第二获取模块,被配置为获取生成页面的代码。
第二转换模块,被配置为在代码执行过程中,将代码中的预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行。
第三获取模块,被配置为获取目标执行代码在目标语言执行环境执行后的执行结果。
展示模块,被配置为根据代码在页面中展示执行结果。
在本实施例的一个可选实现方式中,第二转换模块,包括:第四转换子模块,被配置为将预设执行代码中调用的预设元素映射成目标元素;目标元素为在目标语言执行环境中实现的元素;第五转换子模块,被配置为将预设执行代码转换成调用目标元素的目标执行代码。
在本实施例的一个可选实现方式中,第二转换模块,包括:第六转换子模块,被配置为将预设执行代码中的预设数据类型或预设结构转换成在目标语言执行环境中支持的数据类型或结构。
在本实施例的一个可选实现方式中,第三获取模块,包括:第二接收子模块,被配置为接收目标语言执行环境返回的执行结果;第七转换子模块,被配置为在执行结果中包括预设数据类型或预设结构时,将预设数据类型或预设结构转换成在当前语言代码环境能够支持的数据类型或结构。
在本实施例的一个可选实现方式中,当前语言执行环境为JavaScript语言执行环境,目标语言源代码执行环境为python语言执行环境。
本实施例中的页面展示装置与上述页面展示方法对应一致,具体细节可以参见上述对页面展示方法的描述,在此不再赘述。
图6是适于用来实现根据本申请实施方式的代码执行方法和/或页面展示方法的电子设备的结构示意图。该电子设备例如可以是手机、iPad、计算机、服务器等。
如图6所示,电子设备600包括处理单元601,其可实现为CPU、GPU、FPGA、NPU等处理单元。处理单元601可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行本申请上述代码执行方法和/或页面展示方法的实施方式中的各种处理。在RAM603中,还存储有电子设备600操作所需的各种程序和数据。处理单元601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本申请的实施方式,上文参考本申请实施方式中的任一方法可以被实现为计算机软件程序。例如,本申请的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行本申请实施方式中任一方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
附图中的流程图和框图,图示了按照本申请各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本申请上述代码执行方法和/或页面展示方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (17)
1.一种代码执行方法,其中,包括:
将当前语言编写的代码加载到当前语言执行环境中,并开始执行;
在所述代码执行过程中,遇到所述代码中嵌入的预设执行代码后,将所述预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行;其中,所述预设执行代码为当前语言编写的代码;所述当前语言执行环境和所述目标语言执行环境为不同的执行环境;
获取所述目标执行代码在所述目标语言执行环境执行后的执行结果,以将其作为所述预设执行代码在当前语言执行环境中的执行结果。
2.根据权利要求1所述的方法,其中,确定代码执行中的预设执行代码,包括:
确定代码执行中的预设起始代码以及预设结束代码;
将所述预设起始代码和所述预设结束代码之间的语句确定为所述预设执行代码。
3.根据权利要求2所述的方法,其中,所述方法还包括:
在执行到所述预设起始代码后,启动与所述目标语言执行环境通信的会话链路,以及在所述目标语言执行环境中执行所述目标执行代码的代码执行体。
4.根据权利要求3所述的方法,其中,所述方法还包括:
在执行到所述预设起始代码后,回收所述会话链路以及所述代码执行体。
5.根据权利要求1-4任一项所述的方法,其中,将所述预设执行代码转换成目标语言执行环境中的目标执行代码,包括:
将所述预设执行代码中调用的预设元素映射成目标元素;所述目标元素为在所述目标语言执行环境中实现的元素;
将所述预设执行代码转换成调用所述目标元素的所述目标执行代码。
6.根据权利要求1-4任一项所述的方法,其中,将所述预设执行代码转换成目标语言执行环境中的目标执行代码,包括:
将所述预设执行代码中的预设数据类型或预设结构转换成在所述目标语言执行环境中支持的数据类型或结构。
7.根据权利要求1-4任一项所述的方法,其中,获取所述目标执行代码在所述目标语言执行环境执行后的执行结果,以将其作为所述预设执行代码在当前语言执行环境中的执行结果,包括:
接收所述目标语言执行环境返回的执行结果;
在所述执行结果中包括预设数据类型或预设结构时,将所述预设数据类型或预设结构转换成在所述当前语言代码环境能够支持的数据类型或结构。
8.根据权利要求1-4任一项所述的方法,其中,所述当前语言执行环境为JavaScript语言执行环境,所述目标语言执行环境为python语言执行环境。
9.一种页面展示方法,其中,包括:
获取当前语言编写的生成页面的代码;
将生成页面的所述代码加载到当前语言执行环境中,并开始执行;
在所述代码执行过程中,遇到所述代码中嵌入的预设执行代码后,将所述代码中的预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行;其中,所述预设执行代码为当前语言编写的代码;所述当前语言执行环境和所述目标语言执行环境为不同的执行环境;
获取所述目标执行代码在所述目标语言执行环境执行后的执行结果;
根据所述代码在所述页面中展示所述执行结果。
10.根据权利要求9所述的方法,其中,将所述代码中的预设执行代码转换成目标语言执行环境中的目标执行代码,包括:
将所述预设执行代码中调用的预设元素映射成目标元素;所述目标元素为在所述目标语言执行环境中实现的元素;
将所述预设执行代码转换成调用所述目标元素的所述目标执行代码。
11.根据权利要求9所述的方法,其中,将所述代码中的预设执行代码转换成目标语言执行环境中的目标执行代码,包括:
将所述预设执行代码中的预设数据类型或预设结构转换成在所述目标语言执行环境中支持的数据类型或结构。
12.根据权利要求9-11任一项所述的方法,其中,获取所述目标执行代码在所述目标语言执行环境执行后的执行结果,包括:
接收所述目标语言执行环境返回的执行结果;
在所述执行结果中包括预设数据类型或预设结构时,将所述预设数据类型或预设结构转换成在所述当前语言代码环境能够支持的数据类型或结构。
13.根据权利要求9-11任一项所述的方法,其中,所述当前语言执行环境为JavaScript语言执行环境,所述目标语言执行环境为python语言执行环境。
14.一种代码执行装置,其中,包括:
第一加载模块,被配置为将当前语言编写的代码加载到当前语言执行环境中,并开始执行;
第一转换模块,被配置为在所述代码执行过程中,遇到所述代码中嵌入的预设执行代码后,将所述预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行;其中,所述预设执行代码为当前语言编写的代码;所述当前语言执行环境和所述目标语言执行环境为不同的执行环境;
第一获取模块,被配置为获取所述目标执行代码在所述目标语言执行环境执行后的执行结果,以将其作为所述预设执行代码在当前语言执行环境中的执行结果。
15.一种页面展示装置,其中,包括:
第二获取模块,被配置为获取当前语言编写的生成页面的代码;
第二加载模块,被配置为将生成页面的所述代码加载到当前语言执行环境中,并开始执行;
第二转换模块,被配置为在所述代码执行过程中,遇到所述代码中嵌入的预设执行代码后,将所述代码中的预设执行代码转换成目标语言执行环境中的目标执行代码,发送至目标语言执行环境进行执行;其中,所述预设执行代码为当前语言编写的代码;所述当前语言执行环境和所述目标语言执行环境为不同的执行环境;
第三获取模块,被配置为获取所述目标执行代码在所述目标语言执行环境执行后的执行结果;
展示模块,被配置为根据所述代码在所述页面中展示所述执行结果。
16.一种电子设备,其中,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-13任一项所述的方法。
17.一种计算机可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1-13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010197821.4A CN113495731B (zh) | 2020-03-19 | 2020-03-19 | 代码执行方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010197821.4A CN113495731B (zh) | 2020-03-19 | 2020-03-19 | 代码执行方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113495731A CN113495731A (zh) | 2021-10-12 |
CN113495731B true CN113495731B (zh) | 2022-06-07 |
Family
ID=77993668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010197821.4A Active CN113495731B (zh) | 2020-03-19 | 2020-03-19 | 代码执行方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113495731B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293677A (zh) * | 2015-06-08 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种代码转换方法及装置 |
CN109933331A (zh) * | 2019-03-07 | 2019-06-25 | 杭州时趣信息技术有限公司 | 一种客户端服务器间数据转换方法及相关组件 |
CN110209395A (zh) * | 2019-06-04 | 2019-09-06 | 沈阳欧瑞科技有限公司 | 一种将sql嵌入高级语言的方法、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4662657B2 (ja) * | 2000-07-10 | 2011-03-30 | マイクロソフト コーポレーション | 統一データ型システムおよび方法 |
US10191737B2 (en) * | 2016-06-29 | 2019-01-29 | Accenture Global Solutions Limited | Program code comparison and reporting |
CN109271168A (zh) * | 2018-08-09 | 2019-01-25 | 上海鲸鱼机器人科技有限公司 | 一种代码转换方法、装置及设备、存储介质 |
-
2020
- 2020-03-19 CN CN202010197821.4A patent/CN113495731B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293677A (zh) * | 2015-06-08 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种代码转换方法及装置 |
CN109933331A (zh) * | 2019-03-07 | 2019-06-25 | 杭州时趣信息技术有限公司 | 一种客户端服务器间数据转换方法及相关组件 |
CN110209395A (zh) * | 2019-06-04 | 2019-09-06 | 沈阳欧瑞科技有限公司 | 一种将sql嵌入高级语言的方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113495731A (zh) | 2021-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
CN112329945A (zh) | 一种模型部署及推理的方法和装置 | |
CN112199086A (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
CN111708563B (zh) | 游戏中ui控件进行更新的方法及装置 | |
CN111221630A (zh) | 业务流程处理方法、装置、设备、可读存储介质及系统 | |
CN112083926A (zh) | 一种Web用户界面生成方法及装置 | |
CN105847319A (zh) | 一种移动终端网络请求方法及系统 | |
CN113495731B (zh) | 代码执行方法、装置、电子设备及存储介质 | |
CN114218052A (zh) | 一种业务交互图生成方法、装置、设备及存储介质 | |
CN110209565A (zh) | 一种元数据模型调试方法及其装置 | |
US6230315B1 (en) | Data processing method and apparatus | |
CN109144750B (zh) | 一种消息处理方法、装置、电子设备及存储介质 | |
CN107730572B (zh) | 一种图表渲染方法及装置 | |
CN114757124B (zh) | 一种基于xml的cfd工作流建模方法、装置、计算机及存储介质 | |
CN115525321A (zh) | 分布式任务生成方法、装置、设备及存储介质 | |
CN115061678A (zh) | 一种基于浏览器代理服务的代码编译方法及客户端 | |
CN110990104B (zh) | 一种基于Unity3D的纹理渲染方法及装置 | |
CN113760253A (zh) | 前端渲染方法、装置、设备、介质及程序产品 | |
CN110083357B (zh) | 界面构建方法、装置、服务器及存储介质 | |
CN112363856A (zh) | 一种基于dds实现深度学习框架与应用程序互操作的方法 | |
Rieder et al. | A methodology to specify three-dimensional interaction using Petri Nets | |
CN113254027A (zh) | 一种半导体设备控制程序转换方法、系统、设备和存储介质 | |
Chouiten et al. | Distributed Augmented Reality systems: how much performance is enough? | |
CN112328237A (zh) | 一种场景展示方法、装置、计算机设备和存储介质 | |
CN105323225A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |