利索能及
我要发布
收藏
专利号: 2019102947668
申请人: 王晨
专利类型:发明专利
专利状态:已下证
更新日期:2026-10-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于C/C++编译系统的虚拟机控制系统,其特征在于:所述系统包括词法分析器,用于接收源代码,且所述词法分析器内部设置有算符优先级表以及符号分析栈,能够根据算符优先级的标准分析程序,将源代码转换成语法树;

语法分析器,所述语法分析器用于从语法树中提取变量、常量、函数、类型、命名空间、结构体、联合体、字符串、模板、表达式、条件语句以及节点数据,并将这些数据分类存储到类型定义数据模块中,并将函数、表达式和条件语句送入代码生成器中;所述语法分析器还负责作用域的变换;

类型定义程序模块,用于产生类型定义数据,以决定变量、常量、函数、类型、结构体、联合体、字符串以及模板在虚拟机内存管理模块的存储位置;

代码生成器,用于将从语法树上提取的函数、表达式和条件语句转换生成为虚拟机进程管理模块所能够识别接收的第一代码片断数据;

虚拟机内存管理模块,用于识别接收类型定义数据,在数据内存中布局,建立数据模型和/或用于调用虚拟机进程管理模块,以在代码内存中布局,建立进程模型;

虚拟机进程管理模块,用于识别接收代码片断数据,在代码内存中布局,建立可运行的进程模型,所述虚拟机控制系统运行指定进程模型,遍历各个代码片断节点,并利用运行栈,计算出当前进程模型中第一代码片断数据运行产生的结果;所述虚拟机进程管理模块用于调用所述虚拟机内存管理模块,以修改类型定义数据。

2.根据权利要求1所述的基于C/C++编译系统的虚拟机控制系统,其特征在于:所述源代码为符合ISO/IEC 14882标准的C/C++源代码文件。

3.根据权利要求1所述的基于C/C++编译系统的虚拟机控制系统,其特征在于:所述第一代码片断数据采用树结构,所述第一代码片断数据中的各代码片断节点都带有变量名、函数名、操作编码信息以及指向所有子节点的指针;或者所述第一代码片断数据采用链表结构,所述第一代码片断数据中的各代码片断节点内都包含有指向下一项第一代码片断数据的指针。

4.一种基于C/C++编译系统的控制方法,其特征在于:所述控制方法用于上述权利要求

1至3任一所述的虚拟机控制系统,所述虚拟机进程管理模块接收第一代码片断数据后,对第一代码片断数据执行所述控制方法,所述控制方法包括更新代码片断数据、增加代码片断数据以及删除代码片断数据。

5.根据权利要求4所述的基于C/C++编译系统的虚拟机控制方法,其特征在于:所述更新代码片断数据包括如下步骤,A1、虚拟机控制系统调用所述词法分析器、所述语法分析器、所述类型定义程序模块和所述代码生成器,以产生与源代码对应的第二代码片断数据;

A2、所述虚拟机进程管理模块检测第一代码片断数据是否达到临界条件,若是,则虚拟机控制系统提示第一代码片断数据更新失败;若否,则虚拟机控制系统删除当前进程中的第一代码片断数据,并执行A3;

A3、在当前进程中增加第二代码片断数据。

6.根据权利要求4所述的基于C/C++编译系统的虚拟机控制方法,其特征在于:所述增加代码片断包括如下步骤,B1、虚拟机控制系统调用所述词法分析器、所述语法分析器、所述类型定义程序模块和所述代码生成器,以产生与源代码对应的第二代码片断数据;

B2、所述虚拟机进程管理模块检测第二代码片断数据是否和进程内已有的第一代码片断重复定义;若是,则虚拟机控制系统提示第一代码片断数据增加失败;若否,则在当前进程中增加第二代码片断数据。

7.根据权利要求4所述的基于C/C++编译系统的虚拟机控制方法,其特征在于:所述删除代码片断数据包括如下步骤,所述虚拟机进程管理模块检测第一代码片断数据是否达到临界条件,若是,则虚拟机控制系统提示第一代码片断数据删除失败;若否,则删除当前进程中的第一代码片断数据。

8.根据权利要求5所述的基于C/C++编译系统的虚拟机控制方法,其特征在于:所述临界条件为,第一代码片断数据在当前进程中是否被其他代码片断数据所共享,若是,则表示达到临界条件,若否,则表示未达到临界条件。