1.一种基于区块链的多语言智能合约编译方法,其特征在于,包含如下步骤:
编译所述智能合约的表达式和赋值语句;
编译所述智能合约的条件判断语句;
编译所述智能合约的循环语句;
编译所述智能合约的函数语句。
2.如权利要求1所述基于区块链的多语言智能合约编译方法,其特征在于,所述表达式和赋值语句包含:数学运算类表达式、关系和逻辑类表达式、带优先级的表达式、赋值语句。
3.如权利要求2所述基于区块链的多语言智能合约编译方法,其特征在于,编译所述表达式和赋值语句包含如下步骤:
处理所述表达式或赋值语句的左侧元素,获取入栈指令;
处理所述表达式或赋值语句的右侧元素,获取入栈指令;
处理所述表达式或赋值语句的操作符,获取操作指令。
4.如权利要求3所述基于区块链的多语言智能合约编译方法,其特征在于,若所述左侧或右侧元素是标识符,将所述左侧或右侧元素在符号表中的索引值入栈,获取标识符入栈指令;若所述左侧或右侧元素是值类型元素,将所述值类型入栈,获取值类型入栈的指令。
5.如权利要求3所述基于区块链的多语言智能合约编译方法,其特征在于,按优先级从高到低的顺序,处理所述表达式或赋值语句的操作符。
6.如权利要求1所述基于区块链的多语言智能合约编译方法,其特征在于,编译所述条件判断语句包含如下步骤:
编译所述条件判断语句的条件表达式,获取当前的指令的相对偏移地址,获取条件跳转指令及所述条件跳转指令的跳转目标地址;
编译所述条件判断语句主体,获取目标地址;
将所述目标地址赋值给所述条件跳转指令的跳转目标地址。
7.如权利要求6所述基于区块链的多语言智能合约编译方法,其特征在于,编译所述条件判断语句的条件表达式获取的所述条件跳转指令的跳转目标地址为空。
8.如权利要求1所述基于区块链的多语言智能合约编译方法,其特征在于,编译所述循环语句包含如下步骤:
编译所述循环语句开始处的条件表达式,获取代码相对偏移地址,获取条件跳转指令;
编译所述循环语句的主体,获取代码偏移地址,用所述代码偏移地址设置所述条件跳转指令。
9.如权利要求1所述基于区块链的多语言智能合约编译方法,其特征在于,编译所述函数语句包含如下步骤:
编译所述函数语句的所有参数,获取所述每个参数在符号表中的索引值;
生成函数跳转指令和参数调用指令;
编译所述函数语句的函数主体,获取所述函数语句的局部变量的数量;
若所述函数语句缺少返回指令,补足返回指令。
10.如权利要求9所述基于区块链的多语言智能合约编译方法,其特征在于,生成所述函数跳转指令时,所述函数跳转指令的跳转目标地址为空。