System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种代码编译方法、装置和编译器制造方法及图纸_技高网

一种代码编译方法、装置和编译器制造方法及图纸

技术编号:40361037 阅读:5 留言:0更新日期:2024-02-09 14:48
本申请提供一种代码编译方法、装置和编译器。本申请提供的代码编译方法,包括:针对采用第一编程语言编写的源代码,获取源代码对应于第一编程语言的第一符号表;其中,源代码基于预先设定的语法规则编写;语法规则包括用于指示第一编程语言的特性的基础语法规则、以及第一编程语言与第二编程语言之间的第一交互规则;获取源代码所调用的调用代码对应于第一编程语言的第二符号表;其中,调用代码采用第二编程语言编写;利用第一符号表和第二符号表,对源代码进行类型检查;根据类型检查结果将源代码编译成由第二编程语言编写的目标代码。本申请提供的代码编译方法、装置和编译器,实现了Lua语言的类型检查和面向对象编程。

【技术实现步骤摘要】

本申请涉及代码编译,尤其涉及一种代码编译方法、装置和编译器


技术介绍

1、随着lua语言的快速发展,其被广泛应用于游戏开发、嵌入式系统开发、脚本编程、网络编程等领域。由于其简洁的设计和可扩展性,许多大型游戏引擎都支持lua作为脚本语言。

2、由于lua语言是一种动态解释的轻量级语言,它自身的语法和语义都比较简单,不支持类型检查,也不支持面向对象的编程方法。因此,如何实现lua语言的类型检查和面向对象编程,成为当前亟待解决的问题。


技术实现思路

1、有鉴于此,本申请提供一种代码编译方法、装置和编译器,用以实现lua语言的类型检查和面向对象编程。

2、具体地,本申请是通过如下技术方案实现的:

3、本申请第一方面提供一种代码编译方法,所述方法包括:

4、针对采用第一编程语言编写的源代码,获取所述源代码对应于所述第一编程语言的第一符号表;其中,所述源代码基于预先设定的语法规则编写;所述语法规则包括用于指示所述第一编程语言的特性的基础语法规则、以及所述第一编程语言与第二编程语言之间的第一交互规则;

5、获取所述源代码所调用的调用代码对应于所述第一编程语言的第二符号表;其中,所述调用代码采用所述第二编程语言编写;

6、利用所述第一符号表和所述第二符号表,对所述源代码进行类型检查;

7、根据类型检查结果将所述源代码编译成由所述第二编程语言编写的目标代码。

8、本申请第二方面提供一种代码编译装置,所述装置包括:获取模块、检查模块和编译模块;其中,

9、所述获取模块,用于针对采用第一编程语言编写的源代码,获取所述源代码对应于所述第一编程语言的第一符号表;其中,所述源代码基于预先设定的语法规则编写;所述语法规则包括用于指示所述第一编程语言的特性的基础语法规则、以及所述第一编程语言与第二编程语言之间的第一交互规则;

10、所述获取模块,还用于获取所述源代码所调用的调用代码对应于所述第一编程语言的第二符号表;其中,所述调用代码采用所述第二编程语言编写;

11、所述检查模块,用于利用所述第一符号表和所述第二符号表,对所述源代码进行类型检查;

12、所述编译模块,用于根据类型检查结果将所述源代码编译成由所述第二编程语言编写的目标代码。

13、本申请第三方面提供一种编译器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请第一方面提供的任一项所述方法的步骤。

14、本申请第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请第一方面提供的任一项所述方法的步骤。

15、本申请提供的代码编译方法、装置和编译器,针对采用第一编程语言编写的源代码,通过获取所述源代码对应于所述第一编程语言的第一符号表;其中,所述源代码基于预先设定的语法规则编写;所述语法规则包括用于指示所述第一编程语言的特性的基础语法规则、以及所述第一编程语言与第二编程语言之间的第一交互规则,并获取所述源代码所调用的调用代码对应于所述第一编程语言的第二符号表;其中,所述调用代码采用所述第二编程语言编写,进而利用所述第一符号表和所述第二符号表,对所述源代码进行类型检查,从而根据类型检查结果将所述源代码编译成由所述第二编程语言编写的目标代码。这样,通过预先设定的语法规则,可实现面向对象编程,此外,通过获取第一符号表和第二符号表,进而基于第一符号表和第二符号表对源代码进行类型检查,可实现类型检查。

本文档来自技高网...

【技术保护点】

1.一种代码编译方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述语法规则包括空类型推断规则;所述对所述源代码进行类型检查之前,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,所述根据类型检查结果将所述源代码编译成由所述第二编程语言编写的目标代码,包括:

4.根据权利要求1所述的方法,其特征在于,所述第一交互规则包括所述第一编程语言编写的代码调用所述第二编程语言编写的代码时所遵循的交互规则;所述获取所述源代码所调用的调用代码对应于所述第一编程语言的第二符号表,包括:

5.根据权利要求1所述的方法,其特征在于,所述目标代码包括调试信息;所述调试信息记录所述目标代码和所述源代码之间的映射关系;所述方法还包括:

6.根据权利要求1所述的方法,其特征在于,所述根据类型检查结果将所述源代码编译成由所述第二编程语言编写的目标代码之后,所述方法还包括:

7.一种代码编译装置,其特征在于,所述装置包括:获取模块、检查模块和编译模块;其中,

8.根据权利要求7所述的装置,其特征在于,所述语法规则包括空类型推断规则;其中,

9.一种编译器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-6任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-6任一项所述方法的步骤。

...

【技术特征摘要】

1.一种代码编译方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述语法规则包括空类型推断规则;所述对所述源代码进行类型检查之前,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,所述根据类型检查结果将所述源代码编译成由所述第二编程语言编写的目标代码,包括:

4.根据权利要求1所述的方法,其特征在于,所述第一交互规则包括所述第一编程语言编写的代码调用所述第二编程语言编写的代码时所遵循的交互规则;所述获取所述源代码所调用的调用代码对应于所述第一编程语言的第二符号表,包括:

5.根据权利要求1所述的方法,其特征在于,所述目标代码包括调试信息;所述调试信息记录所述目标代码和所述源代码之间的映...

【专利技术属性】
技术研发人员:沈旭东
申请(专利权)人:北京陌陌信息技术有限公司
类型:发明
国别省市:

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

1