易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

[McugScript]真正的强类型易制脚本引擎,结构清晰,接口强大齐全   [复制链接]

    2021-12-07 16:35:56
    2021开源大赛(第六届)
    易语言资源网
    3315 次浏览
    来源链接


脚本解释码是作者独创的命令行式解释码,结构清洗可视,解释器写起来也简单方便

脚本引擎的一切代码都是作者独立编写,没有抄袭任何案例,创新引擎结构

开坑时间: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提供的模块要介绍的地方太多了我就不一一介绍了,关键还是看代码








点我下载 (已有 99 次下载)

引用模块


源码文件名 模块文件名
McugScript.e
凌哥E编程模块.ec
BIF函数库定义助手.e
凌哥E编程模块.ec


引用支持库


源码文件名 支持库文件名 支持库标识
McugScript.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0
控制台操作支持库 2.0 1E86AA0150514527BB567CD22F3733C8
扩展功能支持库一 3.0 DA19AC3ADD2F4121AAD84AC5FBCAFC71
多线程支持库 2.0 5F99C1642A2F4e03850721B4F5D7C3F8
应用接口支持库 3.1 F7FC1AE45C5C4758AF03EF19F18A395D
互联网支持库 2.0 707ca37322474f6ca841f0e224f4b620
远程服务支持库 2.0 A36CFD538657479eBD7C0D287BBB3D95
BIF函数库定义助手.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
应用接口支持库 3.1 F7FC1AE45C5C4758AF03EF19F18A395D
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0


[错误报告]   上一篇:论文潜搜     下一篇:图片识别,用厚度识别ABI识别快...