Page 163 - 《软件学报》2024年第6期
P. 163

陈文杰 等: 面向全分布式智能建筑系统应用程序的并行化编译方法                                                 2739



                 5.   SSM NextID  = SSM ID  + 1
                 6.   Logical_Var ← “none”, Logical_Condition ← “none”
                 7.  else
                 8.     Logical_Var ← OutputVar
                 9.     Logical_Condition ← “1”
                 10.   SSM NextID  = ID of the next module to execute when the condition is met
                 11.   Logical_Var ← OutputVar
                 12.   Logical_Condition ← “0”
                 13.   SSM NextID = ID of the next module to execute when the condition is not met
                 14.  end if
                 15. end for

                 3.4   底层指令序列生成算法
                 10.  else if other SwarmL elements semantic module then …
                    为了生成面向异构平台的可执行目标代码, 需根据不同的平台特征和转换规则, 对逻辑链进行进一步变换和
                 处理, 生成平台可执行的目标代码. 本文以全分布式智能建筑系统平台                      [2] 作为群体智能系统的一个典型例子来说
                 明逻辑链到目标指令程序的转换. 全分布式智能建筑系统提供了面向智能节点操作系统                             [27] 的底层指令序列   (UIS)
                 来支持应用程序的运行时. 作为目标代码, 底层指令序列包含变量定义、赋值、查询、函数定义等基础操作. 建筑
                 运行控制任务被看作是按照一定顺序执行的底层指令的序列. 由于生成的语义模块是标准化的, 逻辑链和底层指
                 令序列之间可以建立映射关系. 可以为逻辑链中的每一种语义模块配置相应的底层指令, 可能是某一个指令, 也可
                 能是一系列指令构成的标准化组合. 具体实现方法如算法                  2  所描述.
                 算法  2. 逻辑链到底层指令序列编译算法.

                 输入: 逻辑链;
                 输出: 底层指令序列.
                 1. for each standardized semantic module in the logic chain

                 2.  SSM Type_ID  → UIS Type_ID
                 3.  if field-oriented variable definition semantic module then
                 4.   SSM (VarField Name , VarField DataType ) → UIS (Var Name , Var Bytes , Var DataType , Var Number )
                 5.  else if Swarm parallel statement semantic module then
                 6.   SSM (NodeType, VPN) → UIS (Scope, hop count)
                 7.   SSM (Computing attribute code) → UIS (Computing attribute set)
                 8.   Table Map  (SSM Parameter  → (Ar, Aw, X)), Table Map  ((Ar, Aw, X) → C language variables) →UIS (Name, number,
                 data type, and bytes of Ar, Aw, X variables)
                 9.   SSM (Generated C language code)→UIS (content, verification results, and total length of C code)

                 11.  end if
                 12. end for
                 13. Arrange and generate all instruction sequences in the order shown in the logic chain
                    首先, 遍历逻辑链中的每个语义模块, 根据语义模块的类型和编号生成对应的底层指令类型和编号. 然后, 逐
                 个将语义模块中的其他信息映射至底层指令中的信息. 以                   Swarm  并行语句语义模块为例, 首先将语义模块类型映
                 射至底层指令序列类型, 根据语义模块中的节点类型和                  VPN  映射生成底层指令中的作用域和跳数, 根据分布式计
   158   159   160   161   162   163   164   165   166   167   168