Page 10 - 《软件学报》2021年第12期
P. 10

3674                                Journal of Software  软件学报 Vol.32, No.12, December 2021
































                                 Fig.4  Examples of dangling-edges mapping problem
                                          图 4   悬边映射问题的例子
             定义 2.1. G=(N,E)是一个定义在标号集 L 上的空间语义图,当且仅当:
             •   L=L v ∪L r ,L v ∩L r =∅,其中,L v 是虚结点的标号集,L r 是实结点的标号集;
             •   L r =L T ∪L NT ,L T ∩L NT =∅,其中,L T 是终结点的标号集,L NT 是非终结点的标号集;
             •   N 是一个结点集并且可以被分为两个子集合:虚结点集 N v 、实结点集 N r ,其中,实结点集 N r 可以进一步
                分为终结点集 N T 和非终结点集 N NT ;
             •   E⊆N×N 是一个有向边集.
             为了方便于语法语义操作,CGG 定义了以下几个函数.
             •   f NL :N→L 是一个从结点 n∈N 到标号 l∈L 的映射,即 f NL (n)=n.l;
             •   f NC :N→R×R 是一个从结点 n∈N 到坐标 c∈R×R 的映射;
             •   f EN  s  : E →  N 是一个从有向边 e∈E 到它的起始结点的映射;
             •   f EN e  : E →  N 是一个从有向边 e∈E 到它的结束结点的映射.
             在 vCGG 中,图中包含的结点根据分配的标号被分成了两类:虚结点和实结点,其中,实结点可以进一步地分
         为终结点与非终结点.实结点的标号集定义与 CGG 相同,而虚结点的标号主要用于区分不同虚结点标记,不包
         含其他语义信息,因此,主图中虚结点在通常情况下其标号集为空,即主图的所有结点都是实结点.虚结点的主
         要作用是描述主图与产生式的语法结构与空间语义关系,下面给出 vCGG 产生式的定义.
             定义 2.2.  产生式是两个图 G L 和 G R 组成的形如 G L :=G R 的表达式,在 G L 和 G R 之间存在一个双射 f NN :G L .N v ↔
         G R .N v ,并满足以下条件.
                   (( ∈
             •   ∀  nn G  .N ⇒  )  ( f  ( )n =  f ′  ( f  ( ))))n  ,其中,f NC 和 f ′ 分别是 G L 和 G R 的结点坐标映射;
                        L  v    NC     NC  NN              NC
             •   ∀  nn G∈  ((  L .N ⇒  v )  ( f NL ( )n =  f ′ NL ( f NN ( ))))n  ,其中,f NL 和 f ′ 分别是 G L 和 G R 的结点标号映射;
                                                          NL
             •   ∀n 1 ,n 2 ((n 1 ,n 2 ∈G L .N v )∧(n 1 ≠n 2 )⇒(f NL (n 1 )≠f NL (n 2 )));
             •   ∀  n 1 ,n 2 (( ,n n ∈  1  2  G R .N ∧  v )  (n ≠  1  n 2 ) ⇒  ( f ′  NL ( )n ≠  1  f ′  NL ( )))n 2  .
             vCGG 将虚结点引入产生式结构中.在一个产生式图中,虚结点表示上下文结点,而实结点代表非上下文结
   5   6   7   8   9   10   11   12   13   14   15