一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于编译器生成short和int类型指令的方法和系统与流程

2022-05-06 07:50:42 来源:中国专利 TAG:

技术特征:
1.一种基于编译器生成short和int类型指令的方法,其特征在于,所述编译器编译源码生成基于操作数栈的指令,所述基于操作数栈的指令可由虚拟机执行,所述虚拟机执行方法需要栈帧存储参数、局部变量、中间运算结果,所述栈帧包括局部变量区和操作数栈,所述局部变量区由16位长的数据单元,称为“字”的数组实现,boolean、byte、short类型以及引用类型的局部变量使用一个字保存其值,int类型使用两个字保存其内容,字节码的指令通过从0开始的索引使用其中的数据;所述操作数栈也组织成一个以字为单位的数组,通过压栈和出栈操作访问,将虚拟机数据类型的值放入所述所述操作数栈时,将占用一个或者两个字单元,所述方法包括以下步骤:根据所输入的抽象语法树中的每一字面量的数值确定与每一所述字面量对应的字面量类型,所述字面量类型为byte、short或int;根据所述抽象语法树中的一元运算符查找预置的一元操作符动作表以确定对应的一元动作,根据所述一元处理动作生成对应的一元操作字节码,所述一元动作包括操作数的类型转换及操作的指令类型的选择;所述一元操作字节码的类型为short或int类型;根据所述抽象语法树中的后缀运算符查找预置的后缀操作符动作表以确定对应的后缀动作,根据所述后缀动作生成对应的后缀操作字节码,所述后缀动作包括操作数的类型转换及操作的指令类型的选择;所述后缀操作字节码的类型为short或int类型;根据所述抽象语法树中的二元运算符查找预置的二元操作符动作表以确定对应的二元动作,根据所述二元动作生成对应的二元操作字节码,所述二元动作包括操作数的类型转换及操作的指令类型的选择;所述二元操作字节码的类型为short或int类型;根据所述字面量类型、所述一元操作字节码、所述后缀操作字节码及所述二元操作字节码生成与所述抽象语法树对应的中间指令。2.如权利要求1所述的一种基于编译器生成short和int类型指令的方法,其特征在于,所述字面量包括整型字面量及布尔类型字面量,所述根据所输入的抽象语法树中的每一字面量的数值确定与每一所述字面量对应的字面量类型,包括:根据所述整型字面量的数值大小,确定每一所述整型字面量的字面量类型;根据所述布尔类型字面量的字面量类型,确定每一所述布尔类型字面量的字面量类型。3.如权利要求1所述的一种基于编译器生成short和int类型指令的方法,其特征在于,所述根据所述抽象语法树中的一元运算符查找预置的一元操作符动作表以确定对应的一元动作,根据所述一元动作生成对应的一元操作字节码,包括:根据所述一元运算符的操作数类型及结果类型查找所述一元操作符动作表以确定对应的一元动作;根据所述一元动作获取所述一元操作符动作表中对应的一元目标指令;根据所述一元目标指令及所述一元运算符的操作数生成对应的一元操作字节码。4.如权利要求1所述的一种基于编译器生成short和int类型指令的方法,其特征在于,所述根据所述抽象语法树中的后缀运算符查找预置的后缀操作符动作表以确定对应的后缀动作,根据所述后缀动作生成对应的后缀操作字节码,包括:根据所述后缀运算符的操作数类型及结果类型查找所述后缀操作符动作表以确定对应的后缀动作;
根据所述后缀动作获取所述后缀操作符动作表中对应的后缀目标指令;根据所述后缀目标指令及所述后缀运算符的操作数生成对应的后缀操作字节码。5.如权利要求1所述的一种基于编译器生成short和int类型指令的方法,其特征在于,所述根据所述抽象语法树中的二元运算符查找预置的二元操作符动作表以确定对应的二元动作,根据所述二元动作生成对应的二元操作字节码,包括:根据所述二元运算符的操作数类型及结果类型查找所述二元操作符动作表以确定对应的二元动作;根据所述二元动作获取所述二元操作符动作表中对应的二元目标指令;根据所述二元目标指令及所述二元运算符的操作数生成对应的二元操作字节码。6.一种基于编译器生成short和int类型指令的系统,其特征在于,包括以下装置:字面量类型确定装置,用于根据所输入的抽象语法树中的每一字面量的数值确定与每一所述字面量对应的字面量类型,所述字面量类型为byte、short或int;一元操作字节码生成装置,用于根据所述抽象语法树中的一元运算符查找预置的一元操作符动作表以确定对应的一元动作,根据所述一元动作生成对应的一元操作字节码,所述一元动作包括操作数的类型转换及操作的指令类型的选择;所述一元操作字节码的类型为short或int类型;后缀操作字节码生成装置,用于根据所述抽象语法树中的后缀运算符查找预置的后缀操作符动作表以确定对应的后缀动作,根据所述后缀动作生成对应的后缀操作字节码,所述后缀动作包括操作数的类型转换及操作的指令类型的选择;所述后缀操作字节码的类型为short或int类型;二元操作字节码生成装置,用于根据所述抽象语法树中的二元运算符查找预置的二元操作符动作表以确定对应的二元动作,根据所述二元动作生成对应的二元操作字节码,所述二元动作包括操作数的类型转换及操作的指令类型的选择;所述二元操作字节码的类型为short或int类型;中间指令获取装置,用于根据所述字面量类型、所述一元操作字节码、所述后缀操作字节码及所述二元操作字节码生成与所述抽象语法树对应的中间指令。7.如权利要求6所述的一种基于编译器生成short和int类型指令的系统,其特征在于,所述字面量包括整型字面量及布尔类型字面量,所述字面量类型确定装置包括单元:整型字面量处理单元,用于根据所述整型字面量的数值大小,确定每一所述整型字面量的字面量类型;布尔类型字面量处理单元,用于根据所述布尔类型字面量的字面量类型,确定每一所述布尔类型字面量的字面量类型。8.如权利要求6所述的一种基于编译器生成short和int类型指令的系统,其特征在于,所述一元操作字节码生成装置包括单元:一元动作确定单元,用于根据所述一元运算符的操作数类型及结果类型查找所述一元操作符动作表以确定对应的一元动作;一元目标指令获取单元,用于根据所述一元动作获取所述一元操作符动作表中对应的一元目标指令;一元操作字节码生成单元,用于根据所述一元目标指令及所述一元运算符的操作数生
成对应的一元操作字节码。9.如权利要求6所述的一种基于编译器生成short和int类型指令的系统,其特征在于,所述后缀操作字节码生成装置包括单元:后缀动作确定单元,用于根据所述后缀运算符的操作数类型及结果类型查找所述后缀操作符动作表以确定对应的后缀动作;后缀目标指令获取单元,用于根据所述后缀动作获取所述后缀操作符动作表中对应的后缀目标指令;后缀操作字节码生成单元,用于根据所述后缀目标指令及所述后缀运算符的操作数生成对应的后缀操作字节码。10.如权利要求6所述的一种基于编译器生成short和int类型指令的系统,其特征在于,所述二元操作字节码生成装置包括单元:二元动作确定单元,用于根据所述二元运算符的操作数类型及结果类型查找所述二元操作符动作表以确定对应的二元动作;二元目标指令获取单元,用于根据所述二元动作获取所述二元操作符动作表中对应的二元目标指令;二元操作字节码生成单元,用于根据所述二元目标指令及所述二元运算符的操作数生成对应的二元操作字节码。

技术总结
本发明涉及一种基于编译器生成short和int类型指令的方法和系统。现有编译处理的方法编译出的指令是32位指令,在资源受限设备存在执行效率底的问题。本发明所述的方法可依据各种操作符的操作数类型确定操作的结果,对有int类型操作数的操作生成int类型指令,对只有short类和byte型操作数的操作可生成short类型指令,包括一元操作字节码指令、后缀操作字节码指令及二元操作字节码指令,采用本发明所述的方法,用户可以编写对short类型运算的结果没有(short)类型转换的代码,采用本发明的编译器技术可以生成16位指令。编译器技术可以生成16位指令。编译器技术可以生成16位指令。


技术研发人员:石玉平 郑江东 王幼君
受保护的技术使用者:北京握奇数据股份有限公司
技术研发日:2021.12.24
技术公布日:2022/5/5
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献