System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 语言互操作方法、装置、存储介质及程序产品制造方法及图纸_技高网

语言互操作方法、装置、存储介质及程序产品制造方法及图纸

技术编号:40090241 阅读:12 留言:0更新日期:2024-01-23 16:05
本申请涉及一种语言互操作方法、装置、存储介质及程序产品,所述方法包括,获取第一语言代码以及多种第二语言代码;根据多种第二语言代码,生成多种第二语言的互操作边界信息的统一抽象表示,统一抽象表示是多种第二语言的互操作边界信息的二进制代码,多种第二语言的互操作边界信息表示多种第二语言的构成要素中允许与第一语言互相访问或使用的构成要素;根据统一抽象表示,编译第一语言代码,得到第一语言代码的二进制代码并输出。根据本申请实施例的语言互操作方法,能够在为编程语言提供语言互操作能力的同时,降低语言互操作实现的成本及操作难度,提高编程语言的语言互操作能力扩展性。

【技术实现步骤摘要】

本申请涉及计算机编程领域,尤其涉及一种语言互操作方法、装置、存储介质及程序产品


技术介绍

1、随着计算机技术的发展,编程语言的种类也不断增加。编程语言作为一种开发工具,通常是针对特定的领域或行业的开发需求来设计的,例如,java语言多应用于企业软件开发、安卓移动开发,大数据云计算领域等it行业;python语言常用在图形处理,科学计算,web编程,多媒体应用和引擎开发、机器学习、人工智能等领域。也就是说,每种编程语言擅长的领域不同。因此,针对不同的开发环境,需要适应性选择合适的编程语言来实现开发需求。

2、其中,一种编程语言不能满足特定环境下的开发需求时,或者相比该种编程语言,其他编程语言对于完成特定环境下开发需求中的某一部分具有优势时,可以采用该种编程语言结合其他编程语言来共同实现开发需求。为此,提出了语言互操作能力的概念。语言互操作能力表示不同编程语言作为同一系统的一部分进行互操作的能力。现有的语言互操作方法,虽然能够使得编程语言具有语言互操作能力,但其缺点也十分明显:一是开发成本和维护成本较高,二是难以进一步扩展实现多语言的互操作,三是使用编程语言实现语言互操作时需要多个步骤,操作复杂,降低开发者的体验。

3、有鉴于此,如何在为编程语言提供语言互操作能力的同时,降低语言互操作实现的成本及操作难度,提高编程语言的语言互操作能力扩展性,成为本领域的研究热点。


技术实现思路

1、有鉴于此,提出了一种语言互操作方法、装置、存储介质及程序产品,根据本申请实施例的语言互操作方法,能够在为编程语言提供语言互操作能力的同时,降低语言互操作实现的成本及操作难度,提高编程语言的语言互操作能力扩展性。

2、第一方面,本申请的实施例提供了一种语言互操作方法,所述方法包括:获取第一语言代码以及多种第二语言代码;根据所述多种第二语言代码,生成多种第二语言的互操作边界信息的统一抽象表示,所述统一抽象表示是多种第二语言的互操作边界信息的二进制代码,所述多种第二语言的互操作边界信息表示多种第二语言的构成要素中允许与第一语言互相访问或使用的构成要素;根据所述统一抽象表示,编译所述第一语言代码,得到第一语言代码的二进制代码并输出,所述第一语言代码的二进制代码在执行时使得第一语言代码中的构成要素和多种第二语言中的任一第二语言的构成要素能够互相访问或使用。

3、根据本申请实施例的语言互操作方法,通过获取多种第二语言代码,可以根据多种第二语言代码生成多种第二语言的互操作边界信息的统一抽象表示,统一抽象表示是多种第二语言的互操作边界信息的二进制代码,使得统一抽象表示可以体现多种第二语言的构成要素中允许与第一语言互相访问或使用的构成要素,根据统一抽象表示,可以编译第一语言代码,得到第一语言代码的二进制代码。第一语言代码的二进制代码在执行时,使得第一语言代码中的构成要素和多种第二语言代码中的构成要素能够互相访问或使用,即使得第一语言具有与多种第二语言的互操作能力。统一抽象表示可以由多种第二语言的互操作边界信息得到,不涉及构成要素的内部方法,不需要解析多种第二语言的全部语法,使得本申请实施例的语言互操作方法具有较低的开发成本;多种语言的构成要素的内部方法的更新不会影响到多种第二语言的互操作边界信息,因此不会对统一抽象表示带来影响,不必对统一抽象表示进行维护,使得本申请实施例的语言互操作方法具有较低的维护成本;第二语言的增加使得多种第二语言的构成要素可能增加,不会影响到原有的构成要素,进而不会影响统一抽象表示原有的内容,便于第一语言和多种第二语言的互操作能力的进一步扩展;对于开发者而言,完成第一语言代码的撰写以及启动语言互操作方法即可,减少了开发者的工作量,降低了语言互操作方法的操作难度;综上所述,根据本申请实施例的语言互操作方法,能够在为编程语言提供语言互操作能力的同时,降低语言互操作实现的成本及操作难度,提高编程语言的语言互操作能力扩展性。

4、根据第一方面,在所述语言互操作方法的第一种可能的实现方式中,根据所述多种第二语言代码,生成多种第二语言的互操作边界信息的统一抽象表示,包括:根据所述多种第二语言代码,识别所述多种第二语言的互操作边界信息;根据所述多种第二语言的互操作边界信息,生成所述统一抽象表示。

5、通过这种方式,使得统一抽象表示可以直接由互操作边界信息处理得到,避免对多种第二语言的大量语法进行分析,可以提升根据本申请实施例的语言互操作方法的效率。

6、根据第一方面的第一种可能的实现方式,在所述语言互操作方法的第二种可能的实现方式中,所述多种第二语言的互操作边界信息包括至少一个重复的构成要素和至少一个唯一的构成要素,根据所述多种第二语言的互操作边界信息,生成所述统一抽象表示,包括:根据所述多种第二语言的互操作边界信息的共性部分和特有部分生成所述统一抽象表示,其中,所述共性部分通过将所述至少一个重复的构成要素中的每一重复的构成要素作为一个构成要素得到,所述特有部分包括所述至少一个唯一的构成要素。

7、通过这种方式,可以减少统一抽象表示中构成要素的数量,使得统一抽象表示所占据的内存空间降低,并使得后续根据统一抽象表示编译第一语言代码的操作复杂度降低。

8、根据第一方面,以及以上第一方面的任意一种可能的实现方式,在所述语言互操作方法的第三种可能的实现方式中,根据所述统一抽象表示,编译所述第一语言代码,得到第一语言代码的二进制代码并输出,包括:根据所述统一抽象表示与第一语言的互操作边界信息的差异,得到对所述统一抽象表示与第一语言的语义进行处理的处理手段,所述第一语言的互操作边界信息根据所述第一语言代码确定;编译所述第一语言代码时使用所述处理手段,得到所述第一语言代码的二进制代码并输出。

9、第一语言的语义描述了计算机执行使用第一语言编写的程序时所表现的行为,例如逻辑运算、读写数据等。对统一抽象表示与第一语言的语义进行处理的处理手段,可以是对统一抽象表示与第一语言的语义进行融合的手段。例如将统一抽象表示的构成要素与第一语言的构成要素“融合”为以构成要素内存作为构成要素名称的同一构成要素。又例如为第一语言的构成要素增加标记,表示该构成要素中的参数以统一抽象表示的构成要素的实现方式来实现,从而将统一抽象表示的构成要素的语义“融合”到第一语言中。

10、通过这种方式,可以在对第一语言代码进行编译时,完成统一抽象表示与第一语言的语义的处理,使得访问或使用第二语言的构成要素的第一语言代码得以成功编译。在处理手段预先设置好的前提下,不需开发者在编译过程中再做出指示,可以进一步降低开发者的工作难度。在处理手段由开发者实时确定时,可以提升编译第一语言代码时,对所述统一抽象表示与所述第一语言的语义进行处理的灵活性。

11、根据第一方面的第三种可能的实现方式,在所述语言互操作方法的第四种可能的实现方式中,所述处理手段包括映射处理,其中,所述映射处理为针对所述第一语言代码中、与所述统一抽象表示内存相同、名称不同的构成要素,按照映射本文档来自技高网...

【技术保护点】

1.一种语言互操作方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,根据所述多种第二语言代码,生成多种第二语言的互操作边界信息的统一抽象表示,包括:

3.根据权利要求2所述的方法,其特征在于,所述多种第二语言的互操作边界信息包括至少一个重复的构成要素和至少一个唯一的构成要素,

4.根据权利要求1-3中任一项所述的方法,其特征在于,根据所述统一抽象表示,编译所述第一语言代码,得到第一语言代码的二进制代码并输出,包括:

5.根据权利要求4所述的方法,其特征在于,

6.根据权利要求4或5所述的方法,其特征在于,

7.根据权利要求4-6中任一项所述的方法,其特征在于,

8.根据权利要求4-7中任一项所述的方法,其特征在于,

9.一种语言互操作装置,其特征在于,所述装置包括:

10.一种语言互操作装置,其特征在于,包括:

11.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1-8中任意一项所述的方法。

12.一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,其特征在于,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行权利要求1-8中任意一项所述的方法。

...

【技术特征摘要】

1.一种语言互操作方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,根据所述多种第二语言代码,生成多种第二语言的互操作边界信息的统一抽象表示,包括:

3.根据权利要求2所述的方法,其特征在于,所述多种第二语言的互操作边界信息包括至少一个重复的构成要素和至少一个唯一的构成要素,

4.根据权利要求1-3中任一项所述的方法,其特征在于,根据所述统一抽象表示,编译所述第一语言代码,得到第一语言代码的二进制代码并输出,包括:

5.根据权利要求4所述的方法,其特征在于,

6.根据权利要求4或5所述的方法,其特征在于,

7.根据权利...

【专利技术属性】
技术研发人员:轩加振袁健
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1