Page 142 - 《软件学报》2025年第8期
P. 142

于涛 等: 基于下推自动机的同步数据流语言可信编译                                                       3565


                 给出证明, 如图    9  是对  merge 运算符的语义一致性证明, 本节共对表达式文法单元中的                15  种运算符给出了语义一
                 致性证明.

                                              表 9 表达式文法测试用例个数统计

                                          表达式文法单元                             测试用例个数
                                            <constant>                            3
                                            布尔运算符                                 2
                                            算数运算符                                 3
                                            比较运算符                                 3
                                          int <Expression>                        2
                                          real <Expression>                       2
                                          pre <Expression>                        3
                                         current <Expression>                     4
                                     <Expression> fby <Expression>                3
                                      <Expression> → <Expression>                 3
                              if <Expression> then <Expression> else <Expression>  3
                                          # (<Expression>)                        2
                                         nor (<Expression>)                       2
                                     merge <Lv6Id> <Mergecaselist>                4
                                        <CallByPosExpression>                     3
                                       <CallByNameExpression>                     4
                                         [<ExpressionList>]                       2
                                      <Expression> ^ <Expression>                 2
                                      <Expression> | <Expression>                 2
                                      <Expression>[<Expression>]                  2
                                        <Expression> . <Lv6Id>                    2
                                         (<ExpressionList>)                       2
                                          运算符组合测试                                 20
                                              总计                                  78















                                                图 9 merge 运算符一致性证明

                    根据单个运算符文法的语义一致性证明, 可以由此进行程序的一致性证明. 本节对包含了上述                                15  种文法的
                 10  个  Lustre 程序进行了验证测试, 平均证明长度       (含定义) 为  15  行. 由  Isabelle 对语义一致性证明序列进行自动推
                 理并得到程序语义一致证明结论, 从而说明该形式化验证方法的有效性.

                 5.3   系统运行耗时结果分析
                    表  10  给出编译系统各个阶段的平均运行时间和生成的目标代码运行                     1 000  万周期的时间, 其中下推自动机
                 生成仅需执行一次, 在每次编译时不需要执行. 在系统建模的实际生产中, 通常不会频繁进行编译, 因此对于编译
                 的时间效率并不敏感.
   137   138   139   140   141   142   143   144   145   146   147