【技术实现步骤摘要】
动态类型语言的提前编译方法、装置、智能汽车及介质
[0001]本专利技术涉及车辆
,特别涉及一种动态类型语言的提前编译方法
、
装置
、
智能汽车及介质
。
技术介绍
[0002]计算机语言,是一种计算机和用户都能识别的语言,用户通过计算机语言精确的定义计算机数据和程序,来完成想要通过计算机完成实现的功能,计算机语言最终会编译成数据和机器码在计算机上运行
。
动态类型语言,指的是计算机语言的数据类型不是在编译阶段决定的,而是把类型绑定和检测延后到了运行阶段
。
[0003]现有技术中,虚拟机技术,是执行动态类型语言源码的技术
。
虚拟机将源码编译成程序执行时必要的数据和字节码,然后逐条解释执行字节码,或者将字节码转译成机器码组合起来,然后在
CPU
上执行
。
由于该种方式中在运行时需要解释执行或编译的流程,进而造成编译带来的时间开销
。
技术实现思路
[0004]本专利技术实 ...
【技术保护点】
【技术特征摘要】
1.
一种动态类型语言的提前编译方法,应用于车机,其特征在于,包括:对所述车机的目标源码进行编译,得到字节码
、
常量池以及第一全局变量表,其中,所述目标源码为动态类型的源码,所述第一全局变量表包括所述字节码转译成机器码所需要的所有全局变量的地址;基于所述常量池的首地址
、
所述第一全局变量表的首地址以及所述目标源码运行时对应的相关变量存储位置,将所述字节码转译为机器码;将所述机器码链接到虚拟机的内存管理单元;基于链接到所述内存管理单元的机器码,生成预编译文件
。2.
如权利要求1所述的方法,其特征在于,在所述得到字节码
、
常量池以及第一全局变量表之后,所述方法还包括:将所述第一全局变量表的首地址和所述常量池的首地址存储到预设位置
。3.
如权利要求1所述的方法,其特征在于,所述方法还包括:将所述目标源码运行时对应的相关变量按照编译顺序存入栈中
。4.
如权利要求1所述的方法,其特征在于,所述基于所述常量池的首地址
、
所述第一全局变量表的首地址以及所述目标源码运行时对应的相关变量存储位置,将所述字节码转译为机器码,包括:对所述字节码进行遍历,针对每条字节码,若该条字节码在转译过程中需要读取目标全局变量,基于所述目标全局变量对应的第一偏移,生成第一指令,所述第一指令为从内存的第一位置读取数据的指令,所述第一位置为所述第一全局变量表的首地址加所述第一偏移的位置
。5.
如权利要求1所述的方法,其特征在于,所述基于所述常量池的首地址
、
所述第一全局变量表的首地址以及所述目标源码运行时对应的相关变量存储位置,将所述字节码转译为机器码,包括:对所述字节码进行遍历,针对每条字节码,若该条字节码在转译过程中需要读取目标常量数据,基于所述目标常量对应的第二偏移,生成第二指令,所述第二指令为从内存的第二位置读取数据的指令,所述第二位置为所述常量池的首地址加所述第二偏移的位置
。6.
如权利要求1所述的方法,...
【专利技术属性】
技术研发人员:余超君,李庆岩,
申请(专利权)人:斑马网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。