|
本帖最后由 咖啡胤sky 于 2021-12-1 22:05 编辑
脚本解释码是作者独创的命令行式解释码,结构清洗可视,解释器写起来也简单方便
脚本引擎的一切代码都是作者独立编写,没有抄袭任何案例,创新引擎结构
开坑时间:2021年11月3日 (耗时将近一个月)
此脚本由作者之前开发的 至臻脚本引擎 作为草稿参考 写出来的真正强大的脚本,虽然至臻脚本引擎的成果并不怎么样,但是俗话说的话 失败是成功之母 有了第一次的经验第二次绝对不会输在同一个地方
脚本的运行效率还算可以接受:空循环比对(✓比他快,×比他慢) 无双脚本引擎× 至臻脚本引擎✓ 冰山脚本引擎✓ 自制脚本引擎✓
脚本是真正强类型脚本,并不是先前论坛上那些全部为文本模拟的脚本,它存在这几个数据类型{整数型,小数型,双精度小数型,文本型,逻辑型,日期时间型,字节集型}
这些数据类型全部都是真实的易语言变量,拥有真正的变量栈
脚本支持指针操作 $XXX(提取数据地址,可以是常量也可以是变量) @XXX(提取函数地址) 提取出来的指针是真实有效的内存指针地址
脚本的流程语句采用超高精度的逻辑判断完成,不会出现错误作用域执行,完成耗时(4天)
流程控制语句:if、else、else if、while、for、break、continue、return、goto
脚本的流程标记在解释码中主要为:slev(启动作用域)、elev(结束作用域)、judge(判断逻辑后寻找slev或else以及elseif)、stud(多级逻辑判断,并不会增长作用域级别,相当于易语言的判断)、jmp\slp(goto跳转 jmp为用户自己编写的跳转指令,slp为系统生成的循环语句跳转指令)
调用了 凌哥E编程模块
在源码中含有大量注释,以助于后者学习参考
编译器总共分为两个步骤:逐行检测语义编译代码 , 利用模拟栈来进行嵌套函数的占位式编译
解释器总共分为三个步骤:分配参数开始逐行运行解释码 , 数据提纯,将运行时表达式提取为常量(其中运算等全部为作者自创) , 嵌套函数取缔,根据当前的执行进度寻找对应的mov来执行函数并将返回值安顿到应有的位置
为了方便用户使用脚本,作者耗费大量时间编写标准库,基本包揽了易语言系统核心支持库中的函数
脚本内核结构创新,所以源码总体结构比较清晰,只需简单研究一下即可读懂脚本引擎的实现原理(简单且强大)
脚本运行时的临时数据全部可控,都会被解释器转换为比较特殊的指针 控制类:变量类
运算引擎是作者独创的数组操控式运算(可参考)
脚本解释码(命令行式)基本结构: 动作标签 主要参数 次要参数 ...
脚本引擎主要用到的易语言技术知识:文本操作,数组操作,递归运用,传址操作
脚本基本的语法规范:C系代码样式,驼峰式函数书写,Google代码规范,强类型
脚本引擎调用了 L_MODOULE.EC 非常感谢 凌哥UID251491提供的模块要介绍的地方太多了我就不一一介绍了,关键还是看代码
如果有不懂的地方可以加入我们的QQ交流群探讨:693632272
补充内容 (2021-12-9 18:40):
此贴为测试版发布,正式版下载请前往下面的帖子地址
[McugScript]DIY脚本引擎框架更新贴:(正式版下载贴)
https://bbs.125.la/forum.php?mod=viewthread&tid=14709748 |
评分
-
查看全部评分
本帖被以下淘专辑推荐:
- · 鱼木|主题: 1558, 订阅: 152
- · 个人收藏|主题: 2513, 订阅: 80
- · 好帖|主题: 1239, 订阅: 44
- · 藏宝阁|主题: 184, 订阅: 14
- · 可能会用到|主题: 187, 订阅: 8
- · 更多
|