本技术提供了一种参数分类的编译与调用技术,包括方法、装置、设备和程序产品。该技术在编译阶段捕获待调用参数的包装器,其中包含参数类型信息,实现参数的有效管理和优化调用过程。
背景技术
静态类型语言系统需要在编译期确定运行的具体类型。RTTI(Run Time TypeIdentification)技术在静态语言系统中通常带来运行开销且存在风险,在各类型编码规范中被禁止使用。
因此,传统技术中,在应用层进行对各种类型参数根据类型进行区分调用时,通常依赖于手动编码、稳定的RTTI库或者代码生成工具。手动编码在处理复杂参数传递、大型项目、复杂调用逻辑时往往难以维护且容易出错,RTTI库则带来额外的编码和运行时开销,代码生成工具需要额外的IDL(Interactive Data Language,交互式数据语言)和专门设计的生成工具。
第一方面,IDL是一种跨不同编程语言的定义接口、参数和数据类型的方法。在RPC框架中,可以实现入参和出参区分。不同程序依赖相同的IDL,使得不同程序可以彼此逻辑接口调用和实现数据交换。基于IDL的代码生成器系统可以实现客户端存根和服务器桩代码的自动生成,从而使开发人员无需手动编写繁琐的通信代码。
第二方面,代码生成器需要解析具体的文件,并根据文件中的信息翻译成目标编程语言所需的代码。该文件需要符合特定的语法规则,良好的代码生成器可以准确指出用户编码中的缺陷,并给出修正意见。但用户可能给出不符合特定语法规则的情况很多。因此,代码生成器需要实现基于具体规则解析并生成符合各类编程语言所支持的代码,基于上述描述,代码生成器在设计上十分复杂。
因此,这些方法缺乏都通用性,在分批处理不同类型的参数场景中,都不能简化编码和提高运行效率。
实现思路