Direction-Independent Application of Productions on Two-Dimensional Arrays

A direction-independent two-dimensional (2-D) array grammar applies its production rule to a subarray equivalent to the left-hand side of the rule regardless of its direction. The isometric array grammars even if contextfree can get some context from blank symbols, #, in productions and they can implicitly use the compass to determine directions, i.e., north, south, east, and west. So, application direction of each production can uniquely be determined. It seems to be one of the, main factors that even regular array grammars can generate upright rectangles and squares. On the other hand, in a graph grammar or in a map grammar, the application direction of a production is not unique. Namely, a production rule is applied to a subgraph isomorphic to the left-hand side regardless of its position or its direction. Therefore, introducing direction-independent grammars may shed light on both the effects of compass on arrays and the relationships between array grammars and graph (or map) grammars. In this paper, we compare the generative power of direction-independent grammars with those of usual context-free and regular array grammars. We assume the reader to be familiar with the theory of 2-D languages (see, e.g., [l]). The following notations will be used in the rest of this paper. (1) For a finite set V, #V denotes its cardinality, V ** denotes the set of all 4-connected arrays over V including the empty array a,. Also, Vtf is defined as follows: V++= V** {a$}. (2) For an array x and a letter b, #,,(x) denotes the number of occurrences of b in x. (3) For an array x, the notation x(ROT) denotes the set of four arrays obtained by rotating x by O”, 90°, 180”, and 270”. Similarly, for a production x + y, a notation x -+ y(ROT) denotes the set of four rules in which x and y are both rotated by O”, 90”, 180”, and 270”. (4) Given a class X of rewriting systems, F(X) denotes the family of all languages generated by systems in X. We will use F(RAG) and p(CFAG) to denote the classes of regular and context-free array languages, respectively. Definitions of these 2-D grammars and their languages can be found, for example, in [l].