本发明涉及计算机领域,具体涉及一种编程语言转换方法、装置、电子设备和存储介质。
背景技术:
1、目前,java card技术是用于智能卡的java技术,且是用途广泛的智能卡通用编程平台。作为一种基于虚拟机的编程平台,java(一种面向对象的编程语言)源代码首先需要编译成字节代码,然后运行在解释字节代码的虚拟机上。
2、java card的小应用程序(applet)所使用的编译语言为java语言,这种语言生成的字节码(class文件)适配于java虚拟机上使用,但当需要将应用移植到其他类型虚拟机上使用时,则需要重新编译应用程序才能够使用。
3、在重新编译的过程中需要将java语言进行相应的编程语言转换处理,一种最为典型的处理方式是将java语言的已编译生成的字节码(class文件)转换为c语言后进行使用。但是,在转换过程中对java虚拟机堆栈的出栈和入栈解析时,生成的信息量过大,从而使得转换后的代码开销过大,易造成系统性能下降甚至系统崩溃。
技术实现思路
1、针对现有技术中存在的缺陷,本发明的目的在于提供一种编程语言转换方法、装置、电子设备和存储介质,能够有效降低代码开销,避免系统性能下降。
2、为达到以上目的,本发明提供的一种编程语言转换方法,具体包括以下步骤:
3、基于设定的临时变量轮询机制,识别得到当前需进行格式转换的java代码;
4、对所述java代码进行格式转换,并按顺序对java代码的每个表达式中使用的变量和数据赋予临时变量;
5、当在格式转换过程中识别得到所述java代码的表达式结束时,输出临时变量的内容。
6、在上述技术方案的基础上,
7、当识别得到当前需进行格式转换的java代码的字节码之后,创建临时变量存储空间;
8、当按顺序对java代码的每个表达式中使用的变量和数据赋予临时变量之后,将临时变量存储至创建的临时变量存储空间中;
9、当输出临时变量的内容之后,清空临时变量存储空间中存储的临时变量。
10、在上述技术方案的基础上,
11、所述java代码使用的堆栈深度包括代码参数所占堆栈、代码局部变量所占堆栈和操作栈;
12、所述临时变量与操作栈一一对应。
13、在上述技术方案的基础上,
14、所述操作栈的大小在java代码的字节码的第一个字节中声明;
15、所述操作栈的大小等于java代码格式转换过程中使用的临时变量总个数。
16、在上述技术方案的基础上,所述临时变量轮询机制具体为:
17、在格式转换前,预先处理java代码的每个字节码在转换前后的临时变量个数,并根据转换前已使用的临时变量个数以及转换过程中堆栈的入栈和出栈的个数,计算得到转换结束后的临时变量个数;
18、在格式转换前,根据java代码的字节码的类型和输出结果,预先处理java代码的每个字节码在转换前后的临时变量的类型;
19、在格式转换过程中,从java代码的第一个字节码开始,每入栈一个数据即将该数据赋值给一个新增的临时变量,每出栈一个数据即把最后一个临时变量取出,并将该临时变量设置为无效。
20、在上述技术方案的基础上,所述临时变量的类型包括object类型和int类型。
21、本发明提供的一种编程语言转换装置,包括:
22、执行模块,其用于基于设定的临时变量轮询机制,识别得到当前需进行格式转换的java代码;
23、转换模块,其用于对所述java代码进行格式转换,并按顺序对java代码的每个表达式中使用的变量和数据赋予临时变量;
24、输出模块,其用于当在格式转换过程中识别得到所述java代码的表达式结束时,输出临时变量的内容。
25、在上述技术方案的基础上,
26、当识别得到当前需进行格式转换的java代码的字节码之后,创建临时变量存储空间;
27、当按顺序对java代码的每个表达式中使用的变量和数据赋予临时变量之后,将临时变量存储至创建的临时变量存储空间中;
28、当输出临时变量的内容之后,清空临时变量存储空间中存储的临时变量。
29、本发明提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述所述编程语言转换方法的步骤。
30、本发明提供的一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述所述编程语言转换方法的步骤。
31、与现有技术相比,本发明的优点在于:在进行格式转换时采用临时变量轮询的方式,为每个表达式中使用的变量和数据按顺序赋予临时变量,当识别到表达式结束时,输出最后的临时变量的内容,从而省去中间过程语句输出的代码开销,只输出转换成功的语句,从而有效降低代码开销,避免系统性能下降。
1.一种编程语言转换方法,其特征在于,具体包括以下步骤:
2.如权利要求1所述的一种编程语言转换方法,其特征在于:
3.如权利要求1所述的一种编程语言转换方法,其特征在于:
4.如权利要求3所述的一种编程语言转换方法,其特征在于:
5.如权利要求4所述的一种编程语言转换方法,其特征在于,所述临时变量轮询机制具体为:
6.如权利要求4所述的一种编程语言转换方法,其特征在于:所述临时变量的类型包括object类型和int类型。
7.一种编程语言转换装置,其特征在于,包括:
8.如权利要求7所述的一种编程语言转换装置,其特征在于:
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述编程语言转换方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述编程语言转换方法的步骤。