## Implementing Regular Tree Expressions (1991)

Venue: | In Proceedings of the 1991 Conference on Functional Programming Languages and Computer Architecture |

Citations: | 49 - 5 self |

### BibTeX

@INPROCEEDINGS{Aiken91implementingregular,

author = {Alexander Aiken and Brian R. Murphy},

title = {Implementing Regular Tree Expressions},

booktitle = {In Proceedings of the 1991 Conference on Functional Programming Languages and Computer Architecture},

year = {1991},

pages = {427--447},

publisher = {Springer-Verlag}

}

### Years of Citing Articles

### OpenURL

### Abstract

Regular tree expressions are a natural formalism for describing the sets of tree-structured values that commonly arise in programs; thus, they are well-suited to applications in program analysis. We describe an implementation of regular tree expressions and our experience with that implementation in the context of the FL type system. A combination of algorithms, optimizations, and fast heuristics for computationally difficult problems yields an implementation efficient enough for practical use. 1 Introduction Regular tree expressions are a natural formalism for describing the sets of tree-structured values that commonly arise in programs. As such, several researchers have proposed using (variations on) regular tree expressions in type inference and program analysis algorithms [JM79, Mis84, MR85, HJ90, HJ91, AM91]. We are not aware of any implementations based on regular tree expressions, however, except for our own work on type analysis for the functional language FL [B + 89]. A p...

### Citations

3836 | J.D.: Introduction to automata theory, languages, and computation - Hopcroft, Motwani, et al. |

199 | Flow analysis and optimization of lisp-like structures - Jones, D, et al. - 1979 |

142 |
Fundamental properties of infinite trees
- Courcelle
- 1983
(Show Context)
Citation Context ...on". In [MR85], a regular tree is what we term a regular tree expression. We use a different name because the term "regular tree" is usually a finite or infinite tree with a finite numb=-=er of subtrees [Cou83]-=-. Using this definition, a regular tree expression together with a substitution denotes a set of regular trees. Regular tree expressions can also be thought of as tree automata with free variables; we... |

94 | A finite presentation theorem for approximating logic programs
- Heintze, Jaffar
- 1990
(Show Context)
Citation Context ...strict the use of disjunction in a type inference algorithm for a statically typed functional language [MR85], and Heintze and Jaffar use projection functions in a program analysis for logic programs =-=[HJ90]-=-. Almost all of our implementation design would apply to these other systems with little or no modification. The following examples illustrate the usefulness of regular tree expressions. Let c be a bi... |

90 |
Memo” functions and machine learning
- Michie
- 1968
(Show Context)
Citation Context ...t computing A " B but just returning A. Applying similar ideas uniformly dramatically improves performance. The second optimization is to use memoization to record and reuse the results of operat=-=ions [Mic68]-=-. While the usefulness of this optimization depends on the particular application, in our system it is very common for the same operations to be performed again and again. The performance of the syste... |

78 |
Deciding equivalence of finite tree automata
- Seidl
- 1990
(Show Context)
Citation Context ... with that implementation in the context of the FL type system. Implementing regular tree expressions efficiently is challenging, because some of the basic operations have exponential time complexity =-=[Sei89]-=-. Even some operations with polynomial time algorithms perform poorly in practice. The fundamental operations on regular tree expressions are: computing fixed points, union, intersection, negation, an... |

75 | Towards a theory of types in Prolog - Mishra - 1984 |

64 | Static Type Inference in a Dynamically Typed Language
- Aiken, Murphy
- 1991
(Show Context)
Citation Context ...on type analysis for the functional language FL [B + 89]. A previous paper described the theoretical basis for our FL type inference system, in which types are represented by regular tree expressions =-=[AM91]-=-. This paper describes an implementation of regular tree expressions and our experience with that implementation in the context of the FL type system. Implementing regular tree expressions efficiently... |

58 |
Declaration-free type checking
- Mishra, Reddy
- 1985
(Show Context)
Citation Context ...agnitude faster than without them. Measurements and discussion of the system's performance are also presented in Section 7. It is worth explaining our choice of the term "regular tree expression&=-=quot;. In [MR85], a regula-=-r tree is what we term a regular tree expression. We use a different name because the term "regular tree" is usually a finite or infinite tree with a finite number of subtrees [Cou83]. Using... |

6 |
A type inference system for FL
- Murphy
- 1990
(Show Context)
Citation Context ...e) ` \Psi S (E 2 ; oe) is exponential-time hard [AW91]. For the first predicate, 8oe \Psi S (E 1 ; oe) ` \Psi S (E 2 ; oe), a decision procedure is known with the restrictions upon negation used here =-=[Mur90]-=-. This algorithm proved impractical in an implementation. The predicate 9oe \Psi S (E 1 ; oe) ` \Psi S (E 2 ; oe) is computable in general, and in fact it is possible to compute all substitutions that... |

5 |
Tree Automata. Academei Kaido
- Gecseg, Steinby
- 1984
(Show Context)
Citation Context ...variables: S 1 j \Delta S 2 , foe " \Deltajoe 2 S(S 1 )g = foe " \Deltajoe 2 S(S 2 )g The inputs and outputs of our algorithms are leaf-linear systems of equationss[MR85] or regular \SigmaX =-=-grammars [GS84]-=-. These are systems of equations with conjunction and disjunction operators syntactically restricted. A syntax and semantics for leaf-linear systems is given in Figure 2. The following theorem shows t... |

4 | Set-based program analysis. Draft manuscript - Heintze, Jaffar - 1991 |

1 |
A decision problem for set constraints. Research Report Forthcoming RJ, IBM
- Aiken, Wimmers
- 1991
(Show Context)
Citation Context ...ith conjunction and disjunction operators syntactically restricted. A syntax and semantics for leaf-linear systems is given in Figure 2. The following theorem shows that the semantics is well-defined =-=[AW91]-=-. Theorem 3.3 Let S be a leaf-linear system. Then for any substitution oe for variables Free(S), there is exactly one substitution oe 0 for variables Vars(S) such that oe 0 extends oe and oe 0 2 S(S).... |