【技术实现步骤摘要】
面向元编程、交互式编程和区块链互操作的与编程语言无关的虚拟机
本专利技术涉及虚拟机
,具体地涉及一种面向元编程、交互式编程和区块链互操作的与编程语言无关的虚拟机。
技术介绍
虚拟机(VirtualMachine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。过程虚拟机执行由用户编写的源代码表示的软件应用程序[1]。此后,术语“过程虚拟机”和“虚拟机”将互换使用。常见的虚拟机有Java虚拟机,Linux虚拟机,windows虚拟机等等。不同的虚拟机可以使用完全相同的源代码并最终以不同的方式运行程序,这取决于虚拟机是如何实现的以及虚拟机的设计者决定遵循什么标准。例如,编程语言Picolisp至少有两种实现方式,其中一种在用汇编语言编写的虚拟机上运行,该汇编语言适用于运行Linux发行版的64位计算机,而另一种在Java虚拟机上运行[2]。尽管无论使用什么虚拟机,大多数程序都会产生相同的结果,但是还是会出现一些差异,例如垃圾 ...
【技术保护点】
1.一种虚拟机,其特征在于,所述虚拟机将源代码解析为表示虚拟机程序不同部分的结构存储字段集,所述结构存储字段集的字段表示程序组件的特征,所述结构存储字段集包括以下的一种或多种:程序根结构、调用堆栈中的函数调用、程序包、数据结构、函数、表达式和参数。/n
【技术特征摘要】
1.一种虚拟机,其特征在于,所述虚拟机将源代码解析为表示虚拟机程序不同部分的结构存储字段集,所述结构存储字段集的字段表示程序组件的特征,所述结构存储字段集包括以下的一种或多种:程序根结构、调用堆栈中的函数调用、程序包、数据结构、函数、表达式和参数。
2.根据权利要求1所述的虚拟机,其特征在于,所述程序根结构存储关于程序的元数据;所述调用堆栈中的函数调用,分配在虚拟机的调用堆栈上,表示虚拟机正在执行的程序中的函数调用;所述程序包,用于封装或分组虚拟机使用的其他结构,虚拟机的程序中存储一用作其唯一标识符的名称;所述数据结构,被程序使用,至少包括由参数集限定的数据结构,以及在程序包中用作其唯一标识符的名称,数据结构存储对封装它的程序包的引用;所述函数,在虚拟机中运行的程序中的子程序,具有代码,用于识别该函数是否是虚拟机标准函数库的一部分,函数结构包括:在包含该函数结构的程序包中充当唯一标识符的名称,用作函数输入的参数集,用作函数输出的参数集,表达式集或语句集;所述表达式,包含调用函数要使用的输入集和输出集、指向要使用输入和输出执行的函数的指针、唯一标识函数定义内的表达式的标签、指向函数和程序包的指针;所述参数表示指向由字节集构造的值的指针,与类型相关联,参数包括以下字段:存储参数名称的字段、存储一指针的字段、存储一布尔值的字段、存储一布尔标志的字段、存储定义参数的文件名和文件行的字段、存储一偏移量的字段、存储必须由虚拟机执行的操作集的字段、存储指向的值的大小的字段、存储一组值的字段、及表示不同的数据结构的字段。
3.一种虚拟机的交互式编程方法,其特征在于,运行权利要求1或2所述的虚拟机将源代码解析为表示虚拟机程序不同部分的结构存储字段集;构建用于虚拟机的构建程序所使用的与编程语言无关的读取-评估-打印循环(REPL)中的元命令;使用构建的读取-评估-打印循环(REPL)中的元命令修改程序结构,所述元命令包括:
选择,告知虚拟机选择要修改的程序结构;
删除,告知虚拟机从程序结构或整个程序结构中删除某些元素;
添加,通过编写定义和语句执行,结合选择元命令决定其添加的位置;
调试,告知虚拟机提供有关程序的元信息;
分步,告知虚拟机应运行多少程序指令或步骤。
4.一种虚拟机的元编程方法,其特征在于,运行权利要求1或2所述的虚拟机将源代码解析为表示虚拟机程序不同...
【专利技术属性】
技术研发人员:李圣艳,布兰登,阿莫里,卢迪,耿直,李刚,李骁,
申请(专利权)人:上海蓝载信息科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。