程序聚合 软件案例 解释型嵌入式脚本语言(AsulTop/AsulLang-Dev)-AsulLang

解释型嵌入式脚本语言(AsulTop/AsulLang-Dev)-AsulLang

2026-08-08 16:08:36
行业:云计算、物联网
载体:框架或代码包、嵌入式软件
技术:C++、CMake

业务和功能介绍

一、立项背景和目标
该仓库是自研的 AsulLang 轻量化脚本解释器项目。当下很多嵌入式脚本引擎体积庞大、跨平台兼容性较差,C++ 程序接入脚本引擎流程繁琐,多数轻量解释器缺少异步、装饰器、元编程等现代语法。
项目目标为搭建一款基于 C++、易于嵌入宿主程序的跨平台脚本引擎;完善新式编程语言语法用来做语言特性试验;搭建命令行工具、VS‑Code 插件、内置标准库,降低开发者二次开发难度,方便 C++ 项目搭载动态可修改的脚本业务逻辑。
二、软件功能、核心功能模块
项目主体采用 C++ 编写解释器内核,附带 VSCode 语法插件、编译测试脚本,主要分为五大模块。
解释器内核模块:包含词法分析、语法解析、抽象语法树生成、运行时环境、异步事件循环,负责解析源码、管理变量作用域、调度异步任务,同时内置语言服务支撑代码提示。
脚本语言核心能力:支持面向对象多继承、闭包、装饰器、解构赋值、模式匹配、异步语法、模块导入、元编程等功能;自带文件读写、网络请求、正则、动态库调用、单元测试等标准库。
命令行工具模块:提供 REPL 交互式终端、脚本文件运行、版本查看、批量测试功能,可以直接调试和执行 alang 格式源码。
编辑器配套工具:VSCode 扩展实现语法高亮、代码折叠、符号识别,方便日常脚本编写。
C++ 宿主接入模块:对外开放原生绑定接口,开发者能够注册 C++ 函数与类,实现 C++ 主程序和脚本之间互相调用,还支持 FFI 调用系统动态链接库。
三、业务流程、功能路径
首先进行项目编译部署,拉取源码后借助 CMake 完成跨平台配置,编译生成可执行程序,安装对应依赖环境。
日常开发存在三条使用路径。第一种为交互式调试,启动程序进入 REPL 环境,逐行输入代码即时运行调试;第二种直接加载.alang脚本文件执行业务代码;第三种嵌入进 C++ 工程,初始化引擎、注册底层原生接口后运行脚本,手动驱动事件循环处理异步任务。
完整开发流程:安装 VSCode 插件编写脚本,导入内置标准库实现文件、网络等功能;编写单元测试,运行批量测试脚本校验代码;高级场景依靠 FFI 调用本地动态库,利用元编程接口动态生成、执行代码。
该引擎适合桌面程序、嵌入式项目扩展动态逻辑,也可供爱好者开展编程语言相关实验。

项目实现

一、整体架构、设计思路以及各模块技术栈
项目采用分层模块化架构,自上而下分为编辑器工具层、CLI 命令行交互层、标准库拓展层、解释器内核层、C++ 宿主嵌入层。整体遵循内核和上层业务解耦的设计思路,语法解析、运行时环境、系统标准库相互独立,便于迭代新语法、完成多‑操作系统适配。
技术栈划分:解释器内核基于 C++17 手写,包含递归‑下降解析器、AST 抽象语法树、作用域管理、垃圾回收、异步事件循环;项目编译采用 CMake 实现跨平台构建;自动化测试脚本使用 Shell;网络套接字、文件 IO、FFI 动态库调用封装各平台原生系统接口;脚本包管理器依托本地文件系统实现依赖检索;VSCode 语法插件借助 xiaomimimo 大模型辅助完成全部开发工作。
二、本人负责模块以及量化开发成果
VSCode 编辑器插件全程交由 AI 开发,引擎内核、标准库、包管理器、FFI 接口、测试脚本、编译配置等通过现有材料 + AI辅助完成:
完成词法分析、语法解析整套内核,落地 30 余项高级语法,支持多继承面向对象、装饰器、解构赋值、元编程等特性;
独立封装跨平台 TCP‑Socket 网络标准库,适配 Windows、Linux、macOS 三套套接字 API,编写 60 余项超时、断连、消息收发测试用例;
自主搭建脚本包管理机制,处理 import 模块导入、多目录路径优先级检索,引擎可稳定加载 30 余个第三方脚本依赖;
开发跨平台 FFI 动态链接库调用模块,搭建脚本与原生代码之间的数据类型转换规则;
手写 45 个内置标准库函数,编写 90 余个功能和异常测试用例,维护 CMake 编译脚本、整套自动化测试流程,累计修复 8 处语法歧义、内存访问类 Bug;
VSCode‑alang 语法高亮插件,全程借助 xiaomimimo 提供代码生成、配置编写,我只负责需求确认与功能验收。
三、开发过程遇到的难点、坑点以及对应解决方案
1. 跨平台 Socket 接口差异难以封装统一
Windows 需要手动初始化 Winsock,套接字关闭方式、错误码、阻塞模式和 Unix‑like 系统差别很大,经常出现启动崩溃、连接无故断开、缓冲区丢包。
通过系统宏隔离底层原生接口,封装套接字抽象层,统一读写、超时、关闭接口;程序启动自动识别系统,Windows 自动初始化网络组件,接口结束强制回收句柄,增加连接断开异常捕获逻辑。
2. 包管理器路径兼容、循环导入引发栈溢出
不同系统路径分隔符不一致;内置库、本地脚本、第三方依赖的加载顺序混乱;脚本循环 import 触发无限递归。
编写路径兼容函数自动适配正反斜杠;明确模块搜索优先级;设置已加载模块缓存标记,拦截循环导入并且抛出异常提示。
等等

示例图片视频


AsulTop
30天前活跃
方向: 后端-C++、桌面端-Qt、
交付率:100.00%
相似推荐
粮食收购点出入口系统-粮食收购点出入口系统
1.为了乡镇粮食收购点的业务功能如:出入库、记录库存、统计查询使用方便 2.满足多个收购点多租户登录使用 3.满足多个品种地磅进行系统适配使用 4.满足多个品牌摄像头接入 5.能够进行实时小票打印,包含销售模块、收购模块,能够根据小票的二维码快速查询信息
江西省人民医院医疗廉洁防控平台
对接医院信息系统,自动归集:处方、医嘱、药品耗材使用、检查检验申请、收费结算、耗材采购、设备采购、患者就诊、医保结算等全量业务数据,形成医疗行为大数据池。 内置风控规则模型,自动筛查异常行为并预警:大处方、重复开药、高频开同类检查、耗材异常使用、同一医生高频开具特定药品 / 耗材、超适应症检查、医保违规结算等;按风险等级分为红 / 黄预警,自动推送至医务、医德医风办、纪检部门。
课表查询(正方教务系统多校适配版)
高校教务系统(正方 jwglxt 等)是学生查询课表、成绩、考试安排的唯一官方入口, 但普遍存在四个现实问题:一是登录需 RSA 加密加密并对接 CSRF 令牌,页面为服务端 渲染的复杂表格,手机浏览器打开体验极差;二是课表的单双周、分段奇偶、调休与临时 停课信息只能靠学生自己推算,极易看错;三是成绩与绩点口径混乱,挂科课程常被错误 计入"已获得学分",导致学生无法与学校数字对账;四是空教室只能逐节次手工查询, 效率极低。学生每周都要反复核对课表与空教室,却缺少一个能在手机上清晰查看、并可 一键导入系统日历的工具。本项目立项,即为解决高校学生在课表、成绩、考试、空教室 四类高频信息上的查询成本问题。
WPF上位机-上位机SCADA/HMI
🌟 核心架构与技术亮点 (Architecture Highlights) 🔄 内存级环形缓冲区 :采用手搓环形队列实现高频采集与消费解耦,极大地降低 C# 垃圾回收 (GC) 压力支撑界面流畅渲染。 ⚡ 自研轻量级数据核心 :轻量级内存数据核心,高性能内存状态机,实时采集点位高速路由,实时状态响应与事件报警分发。 ⏱️ 自适应时间补偿 :基于高精度 Stopwatch 计时,动态修正采集调度周期,抑制高频采集任务的时间漂移与时序抖动 🔒 无饥饿并发控制 :基于轻量级异步锁+线程池隔离策略,PLC通信负载与UI线程解耦。
智能汽车项目
完成汽车某些功能的座仓设计与交付,使座仓具备了高端的应用场景与用户使用感受;汽车座仓的流畅度设计,保障汽车在整体市场的高竞争力;汽车座仓的人因设计效果的落地与实施效果跟踪与改进,保障汽车在整体市场的高竞争力。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服