BigBang icon indicating copy to clipboard operation
BigBang copied to clipboard

高级模板实现方案

Open AlexiaChen opened this issue 5 years ago • 2 comments

这周和 @sunhantao 查阅了解释器,编译器等相关资料和工具,书籍, 这次可能是更加细化些,需要组内讨论下(讨论的时候,要拉上 @woondroo ,让一休来决定)。

方案一: 修改BTC的脚本,加入到BBC中,但是开发部不友好,连开发人员都不方便表示复杂的模板逻辑,必须把大脑当作栈来用,甚至有时候根本表达不出来一些需求,也不好修改,对不同体系的代码移植过来,不好做减法。

方案二:不采用Lua,Python等成熟完备的语言体系和虚拟机,而是团队自己实现一个内核比较小的脚本模板语言(非图灵完备),手写递归下降分析,或者用ANTLR之类的工具,生成分析树,然后遍历树生成字节码,这套字节码是方便在vchData中存储的,通过链上的字节码解释器执行。这套模板语言对用户开发友好,也符合高级模板的高级意图,团队自己在自己的基础上做加法。

: 最开始组内第一次讨论的方案,是比较高层的可行性方案,并没有涉及到模板语言长什么样子,具体执行的工作原理,用什么技术或工具。

另外, @sunhantao 可以补充这个issue,如果有不完善的地方。

AlexiaChen avatar Aug 13 '20 09:08 AlexiaChen

方案一还有个问题就是硬编码太多,不容易扩展API。迭代开发工作量大。

方案二比较好的优势是可以完全把控,扩展性好,新增API代码量少。缺点是需要持续的优化及修改bug

sunhantao avatar Aug 14 '20 02:08 sunhantao

这次来重庆的时候跟 @一休 交流了下,暂时没有进一步细化需求,所以暂时停止,但是稍微提到说是可以按照我们自己手写编程语言来实现高级模板机制。

AlexiaChen avatar Aug 28 '20 08:08 AlexiaChen