[发明专利]用于将高级语言代码编译为区块链平台上可执行的脚本的系统和方法在审
申请号: | 201880045600.6 | 申请日: | 2018-07-05 |
公开(公告)号: | CN110870249A | 公开(公告)日: | 2020-03-06 |
发明(设计)人: | C·S·赖特;S·萨瓦纳 | 申请(专利权)人: | 区块链控股有限公司 |
主分类号: | H04L9/00 | 分类号: | H04L9/00;G06F8/41 |
代理公司: | 上海晨皓知识产权代理事务所(普通合伙) 31260 | 代理人: | 成丽杰 |
地址: | 安提瓜和巴*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 高级 语言 代码 编译 区块 平台 可执行 脚本 系统 方法 | ||
1.一种计算机实现的方法,包括以下步骤:
接收一部分源代码作为输入,其中所述一部分源代码以高级语言(HLL)编写;和
生成输出脚本,所述输出脚本包括选自功能受限的区块链脚本语言和/或对于功能受限的区块链脚本语言所固有的多个操作码,以使该脚本在执行时至少部分地提供所述一部分源代码中指定的功能。
2.根据权利要求1所述的方法,包括以下步骤:
提供或使用被布置为执行权利要求1中的步骤的编译器。
3.根据权利要求1或2所述的方法,其中,通过执行静态编译来生成所述输出脚本。
4.根据权利要求1、2或3所述的方法,其中:
所述区块链脚本语言受到限制,使得其不固有地支持复杂的控制流结构、递归和/或基于跳转的循环。
5.根据前述权利要求中任一项所述的方法,其中,生成所述输出脚本的步骤包括:
展开所述源代码中提供的至少一个循环结构。
6.根据前述权利要求中任一项所述的方法,还包括以下步骤:
提供或使用解释程序或虚拟机,该解释程序或虚拟机被布置为将所述输出脚本转换为能够在区块链平台上执行的形式。
7.根据前述权利要求中任一项所述的方法,还包括以下步骤:
至少一次优化所述输出脚本,以提供更高效或更精简版本的输出脚本。
8.根据前述权利要求中的任一项所述的方法,其中,生成所述输出脚本的步骤包括使用无导数优化。
9.根据前述权利要求中任一项所述的方法,其中:
被布置为执行前述权利要求中任一项所述的步骤的HLL和/或编译器组件形成软件开发工具包(SDK)的一部分。
10.根据前述权利要求中任一项所述的方法,其中:
所述源代码被布置为实施智能合约。
11.根据前述权利要求中任一项所述的方法,其中:
所述HLL包括至少一个原语或结构,其可以被直接转换成所述区块链脚本语言固有的一个或更多个原语。
12.根据前述权利要求中任一项所述的方法,其中:
所述区块链脚本语言是基于堆栈的,且所述HLL包括一个或更多个原语,所述一个或更多个原语被布置为在所述脚本语言使用的堆栈上执行操作。
13.根据前述权利要求中任一项所述的方法,其中:
所述HLL包括原语,所述原语被布置为将至所述源代码的输入的数量推入所述区块链脚本语言进行内存分配而使用的堆栈上。
14.根据前述权利要求中任一项所述的方法,其中,所述HLL包括以下原语或运算符或它们的功能等同物中的至少一个:
Initiate;
Declare;
Increment;
IF;
While;
Populate;
Monus;
Reset;
Rawscript;
Abort;
Retrieve
Hash、hash 160、或其他哈希操作或其变体。
15.一种计算机实现的方法,包括以下步骤:使用静态编译将一部分源代码转换成与区块链兼容的脚本,优选地,其中,所述静态编译包括循环展开的步骤。
16.一种计算机实现的系统,其被设置为实施前述权利要求中任一项所述的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于区块链控股有限公司,未经区块链控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880045600.6/1.html,转载请声明来源钻瓜专利网。