Page 154 - 《软件学报》2024年第6期
P. 154
2730 软件学报 2024 年第 35 卷第 6 期
(3) 如何设计编译系统, 使其适应目标硬件平台的异构性和升级更新?
随着群体智能思想的日益普及, 具有节点交互和协作特征的底层硬件控制器可能来自不同厂家, 具有不同的
硬件结构和内存资源. 由于底层硬件平台的异构性, 用户需要就不同架构的硬件平台分别编写程序代码并分别编
译, 这导致复杂的软件开发过程和跨平台移植困难. 另外, 群体智能系统应用程序和底层硬件指令的升级和更新将
给编译系统的维护带来巨大的工作量. 因此, 编译系统应该与特定硬件平台解耦, 且适应应用程序和底层硬件的升
级更新, 为上层用户开发提供方便.
2 编译系统定义
针对上述编译挑战, 本文提出一种面向群体智能应用程序的编译系统, 旨在将面向全局、串行思维编程的群
体智能系统应用程序编译转换为节点可独立执行的目标代码, 且屏蔽目标硬件平台的异构性. 本节建立了编译系
统的总体框架, 并形式化定义编译系统的中间表示接口.
2.1 编译系统总体框架
映射
所提出的编译系统包括解析层, 中间层和映射层, 如图 4 所示. 其中, 解析层面向群体智能系统应用程序, 映射
层面向异构的群体智能系统硬件平台. 中间层由标准化语义模块和逻辑链组成, 为上层应用程序和底层硬件平台
提供统一的标准接口. 对于不同的硬件平台和操作系统, 中间层可以有多个符合接口的实现.
解析层 SwarmL APP 格式化预处理 StringBuilder
TreeNode
结构化解析
① 编译算法 1 ② 编译算法 2 查询、匹配
匹配群体智能计算类型 确定参数读写和交互属性
计算划分和数据分配 隐式循环操作转换为数组运算
转换
全局信息拆分, 生成本地信息 生成底层分布式计算属性
③ 符号表 标准化语义模块格式库 标准化语义模块类型库
中间层 逻辑链 标准化语义模块
拼接
硬件信息
目标代码 1 目标代码 2 目标代码 3 下载和部署
映射层 下载 异构硬件平台
全分布式智能建筑系统 群体智能城市系统 无人机蜂群协同系统
不同类型的标准化语义模块
图 4 面向群体智能系统应用程序的编译系统总体框架