CN113656009A - 一种宏处理方法、装置、电子设备及存储介质 - Google Patents

一种宏处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113656009A
CN113656009A CN202110988606.0A CN202110988606A CN113656009A CN 113656009 A CN113656009 A CN 113656009A CN 202110988606 A CN202110988606 A CN 202110988606A CN 113656009 A CN113656009 A CN 113656009A
Authority
CN
China
Prior art keywords
macro
target
programming language
calling
target macro
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
CN202110988606.0A
Other languages
English (en)
Other versions
CN113656009B (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.)
58tongcheng Information Technology Co ltd
Original Assignee
58tongcheng Information 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 58tongcheng Information Technology Co ltd filed Critical 58tongcheng Information Technology Co ltd
Priority to CN202110988606.0A priority Critical patent/CN113656009B/zh
Publication of CN113656009A publication Critical patent/CN113656009A/zh
Application granted granted Critical
Publication of CN113656009B publication Critical patent/CN113656009B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种宏处理方法、装置、电子设备及存储介质。该方法包括:在不支持宏的第一编程语言中,响应于确定需要调用支持宏的第二编程语言中的第一目标宏,调用所述第二编程语言中的目标调用方法,所述目标调用方法用于调用所述第一目标宏并返回所述第一目标宏的执行结果;在所述第一编程语言中,获取所述目标调用方法返回的所述第一目标宏的执行结果。如此,无需用第一编程语言对第二编程语言中的第一目标宏重新展开、翻译,只需要设置目标调用方法,通过目标调用函数调用第一目标宏即可得到执行结果,从而实现了对基于第二编程语言的历史业务最少量的修改,即可进行基于第一编程语言的开发,从而提高了开发效率。

Description

一种宏处理方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种宏处理方法、装置、电子设备及存储介质。
背景技术
随着技术的发展,在软件开发领域,会不断出现新的某些功能优化的编程语言,基于此,相关技术中,开发人员在开发过程中,也开始引入新的编程语言,但是,将原来的编程语言开发的历史业务完全转换成新的编程语言,工作量非常大,开发效率低。例如,历史业务是基于Objective-C(简称OC)语言开发的,当引入Swift语言时,将OC语言的历史业务完全转换成Swift语言,是一个非常巨大的工程,开发效率很低。
发明内容
本发明实施例提供一种宏处理方法、装置、电子设备及存储介质,以解决相关技术中的技术问题。
本发明的目的是通过以下技术方案实现的:
第一方面,本发明实施例提供一种宏处理方法,包括:
在不支持宏的第一编程语言中,响应于确定需要调用支持宏的第二编程语言中的第一目标宏,调用所述第二编程语言中的目标调用方法,所述目标调用方法用于调用所述第一目标宏并返回所述第一目标宏的执行结果;
在所述第一编程语言中,获取所述目标调用方法返回的所述第一目标宏的执行结果。
在一种可能的实施方式中,所述第一目标宏为表达式,所述调用所述第二编程语言中的目标调用方法,包括:
获取调用所述第一目标宏所需的参数;
将所述参数传入所述目标调用方法中。
在一种可能的实施方式中,所述第一目标宏为第一表达式,所述第一表达式的复杂度达到预设程度。
在一种可能的实施方式中,还包括:
在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第二目标宏,调用基于所述第二编程语言中的第二目标宏翻译而来的变量,所述第二目标宏为常量或者第二表达式,所述第二表达式的复杂度未达到所述预设程度。
在一种可能的实施方式中,还包括:
在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第三目标宏,通过系统函数调用所述第三目标宏,所述第三目标宏为系统内置的宏。
在一种可能的实施方式中,还包括:
将所述第一编程语言实现的方法桥接至所述第二编程语言实现的第四目标宏中,所述第四目标宏为模板宏;
调用所述第四目标宏,以将所述第四目标宏中的方法注册到预设的开发框架中,以使得所述开发框架能够调用已注册的方法。
第二方面,本发明实施例提供一种宏处理装置,包括:
第一调用模块,用于在不支持宏的第一编程语言中,响应于确定需要调用支持宏的第二编程语言中的第一目标宏,调用所述第二编程语言中的目标调用方法,所述目标调用方法用于调用所述第一目标宏并返回所述第一目标宏的执行结果;
获取模块,用于在所述第一编程语言中,获取所述目标调用方法返回的所述第一目标宏的执行结果。
在一种可能的实施方式中,所述第一调用模块,具体用于:
获取调用所述第一目标宏所需的参数;
将所述参数传入所述目标调用方法中。
在一种可能的实施方式中,所述第一目标宏为第一表达式,所述第一表达式的复杂度达到预设程度。
在一种可能的实施方式中,还包括:
第二调用模块,用于在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第二目标宏,调用基于所述第二编程语言中的第二目标宏翻译而来的变量,所述第二目标宏为常量或者第二表达式,所述第二表达式的复杂度未达到预设程度。
在一种可能的实施方式中,还包括:
第三调用模块,用于在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第三目标宏,通过系统函数调用所述第三目标宏,所述第三目标宏为系统内置的宏。
在一种可能的实施方式中,还包括:
第四调用模块,用于将所述第一编程语言实现的方法桥接至所述第二编程语言实现的第四目标宏中,所述第四目标宏为模板宏;调用所述第四目标宏,以将所述第四目标宏中的方法注册到预设的开发框架中,以使得所述开发框架能够调用已注册的方法。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面任一项所述的宏处理方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一项所述的宏处理方法的步骤。
上述技术方案中的优点或有益效果至少包括:当引入不支持宏的第一编程语言时,可以在该第一编程语言中,针对支持宏的第二编程语言中的第一目标宏,通过调用第二编程语言中的目标调用方法,使得目标调用方法调用第一目标宏并返回第一目标宏的执行结果,如此,无需用第一编程语言对第二编程语言中的第一目标宏重新展开、翻译,只需要设置目标调用方法,通过目标调用方法来调用第一目标宏即可得到执行结果,从而实现了对基于第二编程语言的历史业务最少量的修改,即可进行基于第一编程语言的开发,从而提高了开发效率。另外,本方案,不会影响原有宏(即第一目标宏)的实现,如果原有宏修改更新,也不需要做额外的操作进行同步,因为本身调用的还是原来的宏。本方案实现简单,开发成本小,只需要写个目标调用方法,调用一次原有宏即可。对于第二编程语言的开发者来说非常友好,甚至不需要懂第一编程语言,就可以让复杂的宏在第一编程语言中轻松调用。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
图1是本发明实施例提供的一种示例性的宏处理方法的流程图。
图2是本发明实施例提供的一种示例性的宏处理方法的流程图。
图3是本发明实施例提供的一种示例性的宏处理装置的示意图。
图4是本发明实施例提供的一种示例性的宏处理装置的示意图。
图5是本发明实施例提供的一种示例性的用来实现宏处理装置的电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着技术的发展,在软件开发领域,会不断出现新的某些功能优化的编程语言,基于此,开发人员在开发过程中,也开始引入新的编程语言,但是,将原来的编程语言开发的历史业务完全转换成新的编程语言,工作量非常大,开发效率低。例如,历史业务是基于Objective-C(简称OC)语言开发的,当引入Swift语言时,将OC语言的历史业务完全转换成Swift语言,是一个非常巨大的工程,开发效率很低。
相关技术中,可以采用多种编程语言进行混编的方式进行开发,以提高开发效率。但是,在混编的过程中,由于不同的编程语言都有各自的特点,所支持的功能不同,实现的过程中存在许多问题。Swift语言与OC语言混编时,由于Swift语言对宏的支持不太友好,OC语言中的宏,不能直接在Swift语言中调用。其中,宏就是一些命令组织在一起,作为一个单独命令完成一个特定任务。
为解决上述技术问题,本发明实施例提供一种宏处理方法、装置、电子设备及存储介质。下面进行详细地介绍。
图1是本发明实施例提供的一种示例性的宏处理方法的流程图。如图1所示,本实施例提供一种宏处理方法,应用于计算机、平板电脑等电子设备,该宏处理方法至少包括如下步骤:
步骤101、在不支持宏的第一编程语言中,响应于确定需要调用支持宏的第二编程语言中的第一目标宏,调用所述第二编程语言中的目标调用方法,所述目标调用方法用于调用所述第一目标宏并返回所述第一目标宏的执行结果。
步骤102、在所述第一编程语言中,获取所述目标调用方法返回的所述第一目标宏的执行结果。
本实施例的应用场景可以是不支持宏的第一编程语言和支持宏的第二编程语言的混编的场景。其中,第一编程语言为入口程序,第二编程语言为后台程序。在入口程序中可以调用后台程序。
示例性的,第一编程语言可以为Swift语言,第二编程语言可以为OC语言,如此,实现Swift语言和OC语言的混编。
实际应用中,历史业务基于OC语言开发。在引入Swift语言开发时,由于Swift语言对宏的支持不太友好,如果需要调用OC语言中的宏,则可以在OC语言中,生成调用宏的OC方法(即上述目标调用方法),该OC方法的返回值即为需调用宏返回的结果。基于此,在Swift语言中,需要调用宏时,直接调用与需调用宏对应的OC方法,使得该OC方法调用宏并得到该宏的执行结果,然后,OC方法将该宏的执行结果作为返回值,返回至Swift语言中。
由此可见,本实施例中,当引入不支持宏的第一编程语言时,可以在该第一编程语言中,针对支持宏的第二编程语言中的第一目标宏,通过调用第二编程语言中的目标调用方法,使得目标调用方法调用第一目标宏并返回第一目标宏的执行结果,如此,无需用第一编程语言对第二编程语言中的第一目标宏重新展开、翻译,只需要设置目标调用方法,通过目标调用方法来调用第一目标宏即可得到执行结果,从而实现了对基于第二编程语言的历史业务最少量的修改,即可进行基于第一编程语言的开发,从而提高了开发效率。
另外,本实施例的方案,不会影响原有宏(即第一目标宏)的实现,如果原有宏修改更新,也不需要做额外的操作进行同步,因为本身调用的还是原来的宏。本方案实现简单,开发成本小,只需要写个目标调用方法,调用一次原有宏即可。对于第二编程语言的开发者来说非常友好,甚至不需要懂第一编程语言,就可以让复杂的宏在第一编程语言中轻松调用。
实际应用中,在支持宏的第二编程语言中,有多种宏,例如,自定义的常量、表达式,再例如,系统内置的宏,等等。相应的,上述第一目标宏的种类也有多种。示例性的,上述第一目标宏可以为常量,也可以为表达式,还可以为系统内置的宏。如此,对第二编程语言中,自定义的常量、表达式、系统内置的宏,都可以通过目标调用方法来调用,调用方式较为统一,从而提高了开发效率。
如果第一目标宏为表达式,对于有些表达式来说,需要传入参数后,基于传入的参数运算得到相应的执行结果。相应的,调用所述第二编程语言中的目标调用方法,如图2所示,其具体实现方式可以包括:
步骤201、获取调用所述第一目标宏所需的参数。
其中,调用第一目标宏所需的参数即表达式所需要的参数。
步骤202、将所述参数传入所述目标调用方法中。
如果第一目标宏为自定义的常量,示例性的,调用所述第二编程语言中的目标调用方法时,直接调用目标调用方法即可。也就是说,对于常量,则无需传入参数,可以直接通过目标调用方法调用。
在示例性实施例中,进一步的,上述第一目标宏可以为第一表达式。该第一表达式可以为复杂度达到预设程度的表达式。这里的复杂度至少可以包括以下其中一种:时间复杂度,空间复杂度,等等。时间复杂度是对算法的运行时间的度量。空间复杂度是对算法在计算机内执行时所需存储空间的度量。如果第一表达式的复杂度包括时间复杂度和空间复杂度其中之一,其中的预设程度是指第一表达式的时间复杂度达到预设时间复杂度,或者第一表达式的空间复杂度达到预设空间复杂度。如果第一表达式的复杂度包括时间复杂度和空间复杂度,其中的预设程度是指第一表达式的时间复杂度达到预设时间复杂度,且第一表达式的空间复杂度达到预设空间复杂度。
对于复杂的表达式,每次展开使用过于麻烦,这种宏虽然可以用第一编程语言重新实现一遍,展开翻译成一个第一编程语言中的全局方法,使用的地方调用这个方法即可,能达到与宏表达式相同的效果,但是每个宏都需要用第一编程语言重新实现,开发成本较大。因此,对于这种复杂的表达式,可以在第一编程语言中,获取该表达式所需的参数,传入第二编程语言中的目标调用函数,由该目标调用函数基于传入的参数去调用该表达式并返回结果,无需将该表达式重新在第一编程语言中实现,开发效率更高。
在示例性实施例中,上述宏处理方法还可以包括:在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第二目标宏,调用基于所述第二编程语言中的第二目标宏翻译而来的变量,所述第二目标宏为常量或者第二表达式,所述第二表达式的复杂度未达到预设程度。
如果第二表达式的复杂度包括时间复杂度,第二表达式的复杂度未达到预设程度是指第二表达式的时间复杂度未达到预设时间复杂度。
如果第二表达式的复杂度包括空间复杂度,第二表达式的复杂度未达到预设程度是指第二表达式的空间复杂度未达到预设空间复杂度。
如果第二表达式的复杂度包括时间复杂度和空间复杂度,第二表达式的复杂度未达到预设程度是指满足以下条件之一:第二表达式的时间复杂度达到预设时间复杂度,第二表达式的空间复杂度未达到预设空间复杂度。
实际应用中,如果第二编程语言中的宏为简单的常量,也可以直接在第一编程语言中,使用全局常量替换,实现较为简单。如果第二编程语言中的宏为较简单的表达式,也可以直接在第一编程语言中重新实现一遍,展开翻译成一个第一编程语言中的全局方法,无需做额外的处理。实施中,可以根据实际需要选择合适的处理方式。
在示例性实施例中,上述宏处理方法还可以包括:在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第三目标宏,通过系统函数调用所述第三目标宏,所述第三目标宏为系统内置的宏。
实际应用中,如前所述,在第二编程语言中,除了自定义的宏,还包括系统内置的宏,也称系统级的宏,对于系统级的宏,第一编程语言中可以提供官方的系统函数,通过该系统函数,可以实现宏的调用。对于系统级的宏来说,直接采用官方的系统函数进行调用,实现更加简单,无需做额外的处理。
在示例性实施例中,上述宏处理方法还可以包括:将所述第一编程语言实现的方法桥接至所述第二编程语言实现的第四目标宏中,所述第四目标宏为模板宏;调用所述第四目标宏,以将所述第四目标宏中的方法注册到预设的开发框架中,以使得所述开发框架能够调用已注册的方法。
实际应用中,为提高开发效率,宏的使用不单单只局限常量和表达式,可能还会用到模板宏,将包含多个函数的整个方法或者几个方法封装成一个宏,即得到模板宏,这种模板宏非常的复杂。以第一编程语言为Swift,第二编程语言为OC语言,预设的开发框架为React Native(简称RN)框架为例,模板宏在RN中非常常见,如果在RN中,需要用到Swift方法,而Swift不支持宏,没办法将Swift方法注册到RN提供的模板宏中,对于此,可以进行特殊的处理,RN官方给出的方案是通过OC桥接来实现,也即,将Swift方法桥接到OC,然后在OC中调用模板宏就可以将桥接的Swift方法注册到RN中,RN就可以调用注册的方法。如此,通过桥接实现了对模板宏的处理,也无需重新编写第一编程语言实现的方法。
需要说明的是,实际应用中,针对不同种类的宏,可以根据需要选择合适的方式来实现相应的功能。
例如,在一种可能的应用场景中,对于自定义的常量、表达式,均通过目标调用函数来调用,对于系统内置的宏,通过系统函数来调用,对于模板宏,通过桥接来实现调用。
再例如,在另一种可能的应用场景中,对于自定义的常量、简单的第二表达式,直接调用翻译而来的变量,对于复杂的第一表达式,则通过目标调用函数来调用,对于系统内置的宏,通过系统函数来调用,对于模板宏,通过桥接来实现调用。
再例如,在另一种可能的应用场景中,对于自定义的常量,直接调用翻译而来的变量,对于表达式,则通过目标调用函数来调用,对于系统内置的宏,通过系统函数来调用,对于模板宏,通过桥接来实现调用。
对于更多的配合实现方式,此处不再一一列举。
图3是本发明实施例提供的一种示例性的宏处理装置的示意图。如图3所示,本发明实施例提供的一种宏处理装置300,可以包括第一调用模块301和获取模块302,其中:
第一调用模块301,用于在不支持宏的第一编程语言中,响应于确定需要调用支持宏的第二编程语言中的第一目标宏,调用所述第二编程语言中的目标调用方法,所述目标调用方法用于调用所述第一目标宏并返回所述第一目标宏的执行结果;
获取模块302,用于在所述第一编程语言中,获取所述目标调用方法返回的所述第一目标宏的执行结果。
本实施例中,当引入不支持宏的第一编程语言时,可以在该第一编程语言中,针对支持宏的第二编程语言中的第一目标宏,通过调用第二编程语言中的目标调用方法,使得目标调用方法调用第一目标宏并返回第一目标宏的执行结果,如此,无需用第一编程语言对第二编程语言中的第一目标宏重新展开、翻译,只需要设置目标调用方法,通过目标调用方法来调用第一目标宏即可得到执行结果,从而实现了对基于第二编程语言的历史业务最少量的修改,即可进行基于第一编程语言的开发,从而提高了开发效率。
另外,本实施例的方案,不会影响原有宏(即第一目标宏)的实现,如果原有宏修改更新,也不需要做额外的操作进行同步,因为本身调用的还是原来的宏。本方案实现简单,开发成本小,只需要写个目标调用方法,调用一次原有宏即可。对于第二编程语言的开发者来说非常友好,甚至不需要懂第一编程语言,就可以让复杂的宏在第一编程语言中轻松调用。
在一种可能的实施方式中,所述第一调用模块,具体用于:
获取调用所述第一目标宏所需的参数;
将所述参数传入所述目标调用方法中。
在一种可能的实施方式中,所述第一目标宏为第一表达式,所述第一表达式的复杂度达到预设程度。
在一种可能的实施方式中,如图4所示,上述宏处理方法还可以包括:
第二调用模块303,用于在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第二目标宏,调用基于所述第二编程语言中的第二目标宏翻译而来的变量,所述第二目标宏为常量或者第二表达式,所述第二表达式的复杂度未达到预设程度。
在一种可能的实施方式中,如图4所示,上述宏处理方法还可以包括:
第三调用模块304,用于在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第三目标宏,通过系统函数调用所述第三目标宏,所述第三目标宏为系统内置的宏。
在一种可能的实施方式中,如图4所示,上述宏处理方法还可以包括:
第四调用模块305,用于将所述第一编程语言实现的方法桥接至所述第二编程语言实现的第四目标宏中,所述第四目标宏为模板宏;调用所述第四目标宏,以将所述第四目标宏中的方法注册到预设的开发框架中,以使得所述开发框架能够调用已注册的方法。
本发明实施例各装置中的各模块的功能可以参见上述宏处理方法实施例中的对应描述,在此不再赘述。
优选的,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述宏处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
图5是本发明实施例提供的一种示例性的电子设备的结构示意图。如图5所示,该电子设备可以包括:处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线505完成相互间的通信。处理器501可以调用存储器503中的计算机程序,以执行以上任一实施例中的宏处理方法。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述宏处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (14)

1.一种宏处理方法,其特征在于,包括:
在不支持宏的第一编程语言中,响应于确定需要调用支持宏的第二编程语言中的第一目标宏,调用所述第二编程语言中的目标调用方法,所述目标调用方法用于调用所述第一目标宏并返回所述第一目标宏的执行结果;
在所述第一编程语言中,获取所述目标调用方法返回的所述第一目标宏的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述第一目标宏为表达式;
所述调用所述第二编程语言中的目标调用方法,包括:
获取调用所述第一目标宏所需的参数;
将所述参数传入所述目标调用方法中。
3.根据权利要求2所述的方法,其特征在于,所述第一目标宏为第一表达式,所述第一表达式的复杂度达到预设程度。
4.根据权利要求1所述的方法,其特征在于,还包括:
在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第二目标宏,调用基于所述第二编程语言中的第二目标宏翻译而来的变量,所述第二目标宏为常量或者第二表达式,所述第二表达式的复杂度未达到预设程度。
5.根据权利要求1所述的方法,其特征在于,还包括:
在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第三目标宏,通过系统函数调用所述第三目标宏,所述第三目标宏为系统内置的宏。
6.根据权利要求1所述的方法,其特征在于,还包括:
将所述第一编程语言实现的方法桥接至所述第二编程语言实现的第四目标宏中,所述第四目标宏为模板宏;
调用所述第四目标宏,以将所述第四目标宏中的方法注册到预设的开发框架中,以使得所述开发框架能够调用已注册的方法。
7.一种宏处理装置,其特征在于,包括:
第一调用模块,用于在不支持宏的第一编程语言中,响应于确定需要调用支持宏的第二编程语言中的第一目标宏,调用所述第二编程语言中的目标调用方法,所述目标调用方法用于调用所述第一目标宏并返回所述第一目标宏的执行结果;
获取模块,用于在所述第一编程语言中,获取所述目标调用方法返回的所述第一目标宏的执行结果。
8.根据权利要求7所述的装置,其特征在于,所述第一目标宏为表达式;
所述第一调用模块,具体用于:
获取调用所述第一目标宏所需的参数;
将所述参数传入所述目标调用方法中。
9.根据权利要求8所述的装置,其特征在于,所述第一目标宏为第一表达式,所述第一表达式的复杂度达到预设程度。
10.根据权利要求7所述的装置,其特征在于,还包括:
第二调用模块,用于在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第二目标宏,调用基于所述第二编程语言中的第二目标宏翻译而来的变量,所述第二目标宏为常量或者第二表达式,所述第二表达式的复杂度未达到预设程度。
11.根据权利要求7所述的装置,其特征在于,还包括:
第三调用模块,用于在所述第一编程语言中,响应于确定需要调用所述第二编程语言中的第三目标宏,通过系统函数调用所述第三目标宏,所述第三目标宏为系统内置的宏。
12.根据权利要求7所述的装置,其特征在于,还包括:
第四调用模块,用于将所述第一编程语言实现的方法桥接至所述第二编程语言实现的第四目标宏中,所述第四目标宏为模板宏;调用所述第四目标宏,以将所述第四目标宏中的方法注册到预设的开发框架中,以使得所述开发框架能够调用已注册的方法。
13.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的宏处理方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的宏处理方法的步骤。
CN202110988606.0A 2021-08-26 2021-08-26 一种宏处理方法、装置、电子设备及存储介质 Active CN113656009B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110988606.0A CN113656009B (zh) 2021-08-26 2021-08-26 一种宏处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110988606.0A CN113656009B (zh) 2021-08-26 2021-08-26 一种宏处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113656009A true CN113656009A (zh) 2021-11-16
CN113656009B CN113656009B (zh) 2024-02-02

Family

ID=78492950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110988606.0A Active CN113656009B (zh) 2021-08-26 2021-08-26 一种宏处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113656009B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117111950A (zh) * 2023-08-23 2023-11-24 北京云枢创新软件技术有限公司 基于常量宏定义的宏文本展开方法、电子设备和介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004005544A1 (de) * 2004-02-04 2005-09-08 Siemens Ag Verminen von Softwarecode zur Verbesserung der Testbarkeit
JP2007102359A (ja) * 2005-09-30 2007-04-19 Omron Corp ラダープログラムの高機能部品化を実現するマクロプログラム
US7337438B1 (en) * 2003-03-31 2008-02-26 Applied Micro Circuits Corporation Macros to support structures for an assembler that does not support structures
US20130268258A1 (en) * 2012-04-04 2013-10-10 Pilla Gurumurty Patrudu Mechanism and system for representing and processing activity models
US20170315791A1 (en) * 2016-04-29 2017-11-02 Intuit Inc. Method and system for developing and deploying data science transformations from a development computing environment into a production computing environment
CN110018860A (zh) * 2019-04-04 2019-07-16 深圳市永兴元科技股份有限公司 工作流管理方法、装置、设备和计算机存储介质
US20200012789A1 (en) * 2017-03-03 2020-01-09 Nippon Telegraph And Telephone Corporation Selection apparatus, selection method, and selection program
CN110673854A (zh) * 2019-09-24 2020-01-10 深圳前海微众银行股份有限公司 Sas语言编译方法、装置、设备及可读存储介质
CN111176626A (zh) * 2019-08-05 2020-05-19 腾讯科技(深圳)有限公司 跨编程语言的代码调用方法及装置、介质、设备
CN111522536A (zh) * 2020-04-21 2020-08-11 艾普阳科技(深圳)有限公司 一种编程语言调用的方法及其相关设备
US20200288164A1 (en) * 2017-11-23 2020-09-10 Intel Corporation Adaptive foveated encoder and global motion predictor
CN112199960A (zh) * 2020-11-12 2021-01-08 北京三维天地科技股份有限公司 一种标准知识元粒度解析系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337438B1 (en) * 2003-03-31 2008-02-26 Applied Micro Circuits Corporation Macros to support structures for an assembler that does not support structures
DE102004005544A1 (de) * 2004-02-04 2005-09-08 Siemens Ag Verminen von Softwarecode zur Verbesserung der Testbarkeit
JP2007102359A (ja) * 2005-09-30 2007-04-19 Omron Corp ラダープログラムの高機能部品化を実現するマクロプログラム
US20130268258A1 (en) * 2012-04-04 2013-10-10 Pilla Gurumurty Patrudu Mechanism and system for representing and processing activity models
US20170315791A1 (en) * 2016-04-29 2017-11-02 Intuit Inc. Method and system for developing and deploying data science transformations from a development computing environment into a production computing environment
US20200012789A1 (en) * 2017-03-03 2020-01-09 Nippon Telegraph And Telephone Corporation Selection apparatus, selection method, and selection program
US20200288164A1 (en) * 2017-11-23 2020-09-10 Intel Corporation Adaptive foveated encoder and global motion predictor
CN110018860A (zh) * 2019-04-04 2019-07-16 深圳市永兴元科技股份有限公司 工作流管理方法、装置、设备和计算机存储介质
CN111176626A (zh) * 2019-08-05 2020-05-19 腾讯科技(深圳)有限公司 跨编程语言的代码调用方法及装置、介质、设备
CN110673854A (zh) * 2019-09-24 2020-01-10 深圳前海微众银行股份有限公司 Sas语言编译方法、装置、设备及可读存储介质
CN111522536A (zh) * 2020-04-21 2020-08-11 艾普阳科技(深圳)有限公司 一种编程语言调用的方法及其相关设备
CN112199960A (zh) * 2020-11-12 2021-01-08 北京三维天地科技股份有限公司 一种标准知识元粒度解析系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117111950A (zh) * 2023-08-23 2023-11-24 北京云枢创新软件技术有限公司 基于常量宏定义的宏文本展开方法、电子设备和介质
CN117111950B (zh) * 2023-08-23 2024-03-29 北京云枢创新软件技术有限公司 基于常量宏定义的宏文本展开方法、电子设备和介质

Also Published As

Publication number Publication date
CN113656009B (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
CN109325195B (zh) 浏览器的渲染方法和系统、计算机设备、计算机存储介质
CN109636317B (zh) 业务控制方法、装置、系统及存储介质
CN108121594B (zh) 一种进程管理方法及装置
CN111399840B (zh) 一种模块开发方法及装置
CN111124480B (zh) 应用程序包的生成方法、装置、电子设备及存储介质
CN108021445B (zh) 内存优化方法、装置、系统及计算机可读存储介质
CN110704131B (zh) 一种html5应用调用原生应用的方法和装置
CN113656009A (zh) 一种宏处理方法、装置、电子设备及存储介质
CN114461223A (zh) 一种代码生成方法、装置及终端设备
CN109947488B (zh) 通用功能模块的对象初始化方法、装置、设备和存储介质
CN111414154A (zh) 前端开发的方法、装置、电子设备和存储介质
CN108628620B (zh) Pos应用开发的实现方法、装置、计算机设备和存储介质
CN107341038B (zh) 兼容性处理方法、装置及电子设备
CN115629976A (zh) 一种内核测试方法、装置和存储介质
CN110333870B (zh) Simulink模型变量分配的处理方法、装置及设备
CN110502251B (zh) 应用安装方法及装置
CN113065131A (zh) 插件的安全控制方法、装置和存储介质
CN112612550A (zh) 一种文件配置方法及装置
CN116382796B (zh) 一种h5小程序运行器的插件管理方法、装置及电子设备
CN112035102A (zh) 数据接口的配置方法及装置、存储介质、电子装置
CN106570143B (zh) 一种发送响应对象的方法和装置
CN111488286A (zh) 一种Android模块独立开发的方法及装置
CN111309541A (zh) 异常处理检测方法、装置、设备及计算机存储介质
CN111782282B (zh) 启动程序加载方法和装置、电子设备和存储介质
CN113722538B (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